@mansory333 бас хитрее делает он не экранирует он эскейпит
составляете ее так же как обычно а потом ее .escape()
Но вам не надо добавлять в регулярку для баса служебные операторы) gm это область применения бас все это сам знает. Вы собственно решили задачу подав вторым аргументом gm
Применение в басе js довольно специфичное ) некоторые вещи работают не так как ожидают я про механику выполнения, они просто работают иначе. фрейморк.
upd 2 скорее всего это связанно что сам бас на С+ вроде
Подружить 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 Огонь! То что нужно, спасибо