Prüfen Sie, ob eine Zeichenkette enthält Substring in JavaScript
- Verwenden Sie den regulären Ausdruck, um zu überprüfen, ob eine Zeichenkette eine TeilZeichenkette in JavaScript enthält
-
Verwenden Sie
String.includes()
, um zu überprüfen, ob ein String Teilstring in JavaScript enthält -
Verwenden Sie
String.indexOf()
, um zu überprüfen, ob ein String Teilstring in JavaScript enthält
In diesem Tutorial erfahren Sie, wie Sie überprüfen, ob eine Zeichenkette eine TeilZeichenkette in JavaScript enthält.
Es ist eine einfache und gemeinsame Aufgabe, aber verschiedene Sprachen behandeln sie auf unterschiedliche Weise. Wir werden die integrierten Methoden in JavaScript und die benutzerdefinierten Methoden sehen, um das oben genannte Ziel zu erreichen.
Verwenden Sie den regulären Ausdruck, um zu überprüfen, ob eine Zeichenkette eine TeilZeichenkette in JavaScript enthält
Es ist eine der leistungsstärksten und traditionellsten Methoden, um das Vorhandensein eines Teilstrings zu überprüfen. Dies gibt uns im Vergleich zu integrierten Methoden viel Flexibilität, da wir mit den integrierten JavaScript-Methoden nur eine konstante Zeichenkette überprüfen und die Groß- und Kleinschreibung ihres Verhaltens nicht ändern können. Wir werden die Methode RegExp.test()
verwenden, um nach TeilZeichenketten in einer Zeichenkette zu suchen.
let str = 'delftstack';
console.log(/stack/.test(str));
Ausgabe:
true
Hier verwenden wir die Funktion .test()
, um festzustellen, ob der Teilstring stack
in der Zeichenkette delftstack
vorhanden ist, und erhalten als Ergebnis true
.
Das Schöne an Regex liegt jedoch in der Tatsache, dass wir Suchen ohne Berücksichtigung der Groß- und Kleinschreibung durchführen können, was mit integrierten JavaScript-Methoden nicht möglich ist, und dass wir sogar nach Mustern wie einem numerischen Teilstring fester Länge suchen können, ohne zu wissen, was es ist.
let str = 'delftstack';
console.log(stack / i.test(str));
Ausgabe:
true
Wir hängen i
an den Ausdruck /stack/
an und können die Suche ohne Berücksichtigung der Groß- und Kleinschreibung durchführen.
Verwenden Sie String.includes()
, um zu überprüfen, ob ein String Teilstring in JavaScript enthält
ES6 hat die Funktion .includes()
eingeführt, mit der wir überprüfen können, ob eine bestimmte TeilZeichenkette in der Zeichenkette vorhanden ist. Es gibt einen booleschen Wert zurück, der die Anwesenheit durch true
oder false
anzeigt. Bei dieser Methode wird zwischen Groß- und Kleinschreibung unterschieden. Wenn also die TeilZeichenkette S
mit s
abgeglichen wird, wird false
zurückgegeben.
Diese Methode akzeptiert zwei Argumente: Das erste ist die TeilZeichenkette und das zweite ist der Index, von dem aus wir die Suche innerhalb der Zeichenkette beginnen möchten. Wenn das zweite Argument außerhalb der linken Grenze liegt, d. H. Es ist kleiner als 0
, startet JavaScript die Suche ab dem Index 0
. Wenn es größer als die Länge der Zeichenkette ist, wird direkt false zurückgegeben.
const str = 'delftstack';
const substr = 'stack';
console.log(str.includes(substr));
Ausgabe:
true
Im obigen Code übergeben wir den Teilstring an die Funktion und er gibt true
zurück, da stack
in der Zeichenkette delftstack
vorhanden ist.
const str = 'delftstack';
const substr = 'stack';
console.log(str.includes(substr, 4));
Ausgabe:
true
Dieser Code startet die Suche nach dem Wort Stapel
ab dem Index 5
.
Verwenden Sie String.indexOf()
, um zu überprüfen, ob ein String Teilstring in JavaScript enthält
Bevor ES6 die Methode String.includes()
einführte, war die einzige integrierte Methode die Methode .indexOf()
. Es ist der Methode String.includes()
ziemlich ähnlich. Anstatt einen booleschen Wert zurückzugeben, gibt diese Methode den Index des ersten Zeichens der TeilZeichenkette zurück, wenn die TeilZeichenkette in der angegebenen Zeichenkette vorhanden ist, und -1
, wenn die TeilZeichenkette nicht vorhanden ist.
const str = 'delftstack';
const substr = 'stack';
console.log(str.indexOf(substr) != -1);
Ausgabe:
true
Es mag alt sein, aber dies ist genauer, da es wie .includes()
verwendet werden kann, indem einfach das Ergebnis der Funktion überprüft wird, um festzustellen, ob es nicht gleich -1
ist. Im Gegensatz zu .includes()
gibt es uns den genauen Index des Beginns der TeilZeichenkette zurück und kann von viel praktischerer Bedeutung sein.
Alle oben genannten Methoden mit Ausnahme von String.includes()
werden von allen gängigen Browsern unterstützt. String.includes()
wurde von ES6 eingeführt und wird von Internet Explorer immer noch nicht unterstützt. Eine weitere Methode hierfür ist die Verwendung des KMP-Algorithmus (Knuth-Morris-Pratt), eines O(n)
-Algorithmus mit umfangreichen Anwendungen. Es ist ein großes Thema für sich, und wir werden es in einem zukünftigen Beitrag behandeln.
Harshit Jindal has done his Bachelors in Computer Science Engineering(2021) from DTU. He has always been a problem solver and now turned that into his profession. Currently working at M365 Cloud Security team(Torus) on Cloud Security Services and Datacenter Buildout Automation.
LinkedIn