Normalerweise würde ich eine String.contains()
Methode erwarten , aber es scheint keine zu geben.
Was ist ein vernünftiger Weg, um dies zu überprüfen?
javascript
string
substring
string-matching
Peter O.
quelle
quelle
indexOf()
es ...string.toUpperCase().includes(substring.toUpperCase())
/regexpattern/i.test(str)
-> i Flag steht für Groß- und KleinschreibungEs gibt eine
String.prototype.includes
in ES6 :Beachten Sie, dass dies in Internet Explorer oder anderen alten Browsern ohne oder mit unvollständiger ES6-Unterstützung nicht funktioniert . Damit es in alten Browsern funktioniert, möchten Sie möglicherweise einen Transpiler wie Babel , eine Shim-Bibliothek wie es6-shim oder diese Polyfüllung von MDN verwenden :
quelle
"potato".includes("to");
es einfach und lass es durch Babel laufen."boot".includes("T")
istfalse
Eine andere Alternative ist KMP (Knuth-Morris-Pratt).
Der KMP-Algorithmus sucht im ungünstigsten Fall O ( n + m ) nach einer Länge- m- Teilzeichenfolge in einer Länge- n- Zeichenfolge im Vergleich zu einem Worst-Fall von O ( n ⋅ m ) für den naiven Algorithmus, sodass möglicherweise KMP verwendet wird Seien Sie vernünftig, wenn Sie sich für die Komplexität der Worst-Case-Zeit interessieren.
Hier ist eine JavaScript-Implementierung von Project Nayuki aus https://www.nayuki.io/res/knuth-morris-pratt-string-matching/kmp-string-matcher.js :
quelle