Подружить 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 Огонь! То что нужно, спасибо


Log in to reply