Zwykle spodziewałbym się String.contains()
metody, ale nie ma takiej.
Jaki jest rozsądny sposób na sprawdzenie tego?
javascript
string
substring
string-matching
Peter O.
źródło
źródło
indexOf()
to jest ...string.toUpperCase().includes(substring.toUpperCase())
/regexpattern/i.test(str)
-> i flag oznacza niewrażliwość na wielkość literJest
String.prototype.includes
w ES6 :Pamiętaj, że to nie działa w Internet Explorerze lub niektórych innych starych przeglądarkach bez obsługi niekompletnej ES6 lub z niepełną obsługą. Aby działało w starych przeglądarkach, możesz użyć transpilatora, takiego jak Babel , biblioteki shim, takiej jak es6-shim , lub tej wielopełniacza z MDN :
źródło
"potato".includes("to");
i przeprowadź przez Babel."boot".includes("T")
jestfalse
Inną alternatywą jest KMP (Knuth – Morris – Pratt).
Algorytm KMP szuka podłańcucha o długości m w ciągu o długości n w najgorszym przypadku O ( n + m ) w porównaniu do najgorszego przypadku O ( n ⋅ m ) dla naiwnego algorytmu, więc użycie KMP może bądź rozsądny, jeśli zależy Ci na złożoności w najgorszym przypadku.
Oto implementacja JavaScript projektu Nayuki, pobrana z https://www.nayuki.io/res/knuth-morris-pratt-string-matching/kmp-string-matcher.js :
źródło