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 str
ist eine Zeichenfolge.
matchAll () Parameter
Die matchAll()
Methode umfasst:
- regexp - Ein Objekt mit regulären Ausdrücken (Argument wird implizit konvertiert,
RegExp
wenn es keinRegExp
Objekt ist)
Hinweis: Wenn das RegExp
Objekt nicht über das /g
Flag verfügt, TypeError
wird 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… of
Schleife 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 ()