Prüfen Sie, ob eine Zeichenkette enthält Substring in JavaScript

Harshit Jindal 12 Oktober 2023
  1. Verwenden Sie den regulären Ausdruck, um zu überprüfen, ob eine Zeichenkette eine TeilZeichenkette in JavaScript enthält
  2. Verwenden Sie String.includes(), um zu überprüfen, ob ein String Teilstring in JavaScript enthält
  3. Verwenden Sie String.indexOf(), um zu überprüfen, ob ein String Teilstring in JavaScript enthält
Prüfen Sie, ob eine Zeichenkette enthält Substring in JavaScript

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 avatar Harshit Jindal avatar

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

Verwandter Artikel - JavaScript String