Обычно я ожидал бы String.contains()
метода, но, похоже, его нет.
Какой разумный способ проверить это?
javascript
string
substring
string-matching
Peter O.
источник
источник
indexOf()
оно и есть ...string.toUpperCase().includes(substring.toUpperCase())
/regexpattern/i.test(str)
-> флаг i означает нечувствительность к региструЕсть
String.prototype.includes
в ES6 :Обратите внимание, что это не работает в Internet Explorer или некоторых других старых браузерах с отсутствующей или неполной поддержкой ES6. Чтобы это работало в старых браузерах, вы можете использовать транспортер, такой как Babel , библиотека shim, например es6-shim , или этот polyfill из MDN :
источник
"potato".includes("to");
и проведите через Вавилон."boot".includes("T")
этоfalse
Другой альтернативой является KMP (Кнут-Моррис-Пратт).
Алгоритм KMP ищет подстроку length- m в строке length n за время O ( n + m ) в худшем случае по сравнению с наихудшим вариантом O ( n ⋅ m ) для наивного алгоритма, поэтому использование KMP может будьте разумны, если вам небезразлична сложность времени в худшем случае.
Вот реализация JavaScript от Project Nayuki, взятая из https://www.nayuki.io/res/knuth-morris-pratt-string-matching/kmp-string-matcher.js :
источник