Javascript String matchAll ()

Die JavaScript String matchAll () -Methode gibt einen Iterator der Ergebnisse des Abgleichs eines Strings mit einem regulären Ausdruck zurück.

Die Syntax der matchAll()Methode lautet:

 str.matchAll(regexp)

Hier strist eine Zeichenfolge.

matchAll () Parameter

Die matchAll()Methode umfasst:

  • regexp - Ein Objekt mit regulären Ausdrücken (Argument wird implizit konvertiert, RegExpwenn es kein RegExpObjekt ist)

Hinweis: Wenn das RegExpObjekt nicht über das /gFlag verfügt, TypeErrorwird a ausgelöst.

Rückgabewert von matchAll ()

  • Gibt einen Iterator zurück, der die Übereinstimmungen einschließlich der Erfassungsgruppen enthält.

Hinweis : Jedes Element des zurückgegebenen Iterators verfügt über die folgenden zusätzlichen Eigenschaften:

  • groups - Ein Objekt benannter Erfassungsgruppen mit Schlüsseln als Namen und Werten als erfasste Übereinstimmungen.
  • index - Der Suchindex, in dem das Ergebnis gefunden wurde.
  • input - Eine Kopie der Suchzeichenfolge.

Beispiel 1: Verwenden von matchAll ()

 const string = "I am learning JavaScript not Java."; const re = /Java(a-z)*/gi; let result = string.matchAll(re); for (match of result) ( console.log(match); )

Ausgabe

 ('JavaScript', Index: 14, Eingabe: 'Ich lerne JavaScript nicht Java.', Gruppen: undefiniert) ('Java', Index: 29, Eingabe: 'Ich lerne JavaScript nicht Java.', Gruppen: undefiniert)

Hier wird der zurückgegebene Iterator mithilfe der for… ofSchleife durchlaufen.

Beispiel 2: Verwenden von matchAll zum Erfassen von Gruppen

 const string = "My name is Albert. YOUR NAME is Soyuj."; // expression matches case-insensitive "name is"+ any alphabets till period (.) // using named capturing groups const re = /namesiss(?(a-zA-Z)+)./gi; let found = string.matchAll(re); for (const match of found)( console.log(`Found "$(match(0))" at index $(match.index). Captured name = $(match.groups('name'))`) )

Ausgabe

Gefunden "Name ist Albert." am Index 3. Erfasster Name = Albert Gefunden "NAME ist Soyuj." bei Index 24. Erfasster Name = Soyuj

Hier haben wir einen regulären Ausdruck verwendet, um einem bestimmten Teil der Zeichenfolge zu entsprechen. Wir können bestimmte Gruppen im Spiel mit matchAll()besser als erfassen match().

Empfohlene Lektüre: JavaScript String match ()

Interessante Beiträge...