Подружить indexOf с маской
-
Здравствуйте. Можно ли как-то в методе indexOf использовать маску или какое-то аналогичное решение например:
"Мама мыла раму".toLowerCase()).indexOf("мама".toLowerCase().trim()) >= 0 - это true
"Мама мыла раму".toLowerCase()).indexOf("мама*раму".toLowerCase().trim()) >= 0 - это false (понятное дело что такой метод не будет работать, но хотелось бы что бы такая маска возвращала true)
Как реализовать?
-
@john_bradley создайте функцию с названием indexOf и переделайте логику дефолтного indexOf так, как вам нужно.
Чтобы использовать в разных частях проекта - запихните ее в действие 'Выполнить код' в начале проекта
-
Это понятно, что ее надо переделать . Вопрос в том, как сделать что бы в indexOf работала маска в тексте или аналогичный метод?
-
@john_bradley Можно с помощью Regex-а
String.prototype.regexIndexOf = function(regex, startpos) { var indexOf = this.substring(startpos || 0).search(regex); return (indexOf >= 0) ? (indexOf + (startpos || 0)) : indexOf; } "Мама мыла раму".toLowerCase().regexIndexOf("мама{1,}раму") // return -1 "Мама мыла раму".toLowerCase().regexIndexOf("мама.{1,}раму") // return 0
-
@oyasumi-punpun Огонь! То что нужно, спасибо