Metoda JavaScript String matchAll () vraća iterator rezultata podudaranja niza s regularnim izrazom.
Sintaksa matchAll()
metode je:
str.matchAll(regexp)
Evo, str
niz je.
parametri matchAll ()
matchAll()
Postupak uzima u:
- regexp - objekt regularnog izraza (argument se implicitno pretvara
RegExp
ako nijeRegExp
objekt)
Napomena: Ako RegExp
objekt nema /g
zastavicu, TypeError
bacit će se a.
Povratna vrijednost iz matchAll ()
- Vraća iterator koji sadrži podudaranja, uključujući grupe za hvatanje.
Napomena : Svaki vraćeni iterator ima sljedeća dodatna svojstva:
groups
- Objekt imenovanih grupa za hvatanje koje imaju ključeve kao imena i vrijednosti kao uhvaćene podudarnosti.index
- indeks pretraživanja gdje je pronađen rezultat.input
- Kopija niza za pretraživanje.
Primjer 1: Korištenje 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); )
Izlaz
('JavaScript', indeks: 14, ulaz: 'Ja učim JavaScript ne Java.', Grupe: nedefinirano) ('Java', indeks: 29, ulaz: 'Učim JavaScript ne Java.', Grupe: nedefinirano)
Ovdje se vraćeni iterator ponavlja putem for… of
petlje.
Primjer 2: Korištenje matchAll za hvatanje grupa
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'))`) )
Izlaz
Pronađeno je "ime je Albert". na indeksu 3. Uhvaćeno ime = Albert Pronađen "IME je Soyuj." na indeksu 24. Snimljeno ime = Soyuj
Ovdje smo upotrijebili regularni izraz za podudaranje određenog dijela niza. Možemo zabilježiti određene skupine na utakmici koristeći matchAll()
bolje od match()
.
Preporučeno čitanje: Podudaranje JavaScript niza ()