Metoda JavaScript String matchAll () zwraca iterator wyników dopasowania ciągu do wyrażenia regularnego.
Składnia matchAll()
metody to:
str.matchAll(regexp)
Tutaj str
jest sznurek.
matchAll () Parametry
matchAll()
Sposób odbywa się:
- regexp - obiekt wyrażenia regularnego (Argument jest niejawnie konwertowany na,
RegExp
jeśli nie jestRegExp
obiektem)
Uwaga: jeśli RegExp
obiekt nie ma /g
flagi, TypeError
zostanie wyrzucony.
Wartość zwracana z matchAll ()
- Zwraca iterator zawierający dopasowania, w tym grupy przechwytywania.
Uwaga : każdy element zwracanego iteratora będzie miał następujące dodatkowe właściwości:
groups
- Obiekt nazwanych grup przechwytywania z kluczami jako nazwami i wartościami jako przechwycone dopasowania.index
- indeks wyszukiwania, w którym znaleziono wynik.input
- kopia wyszukiwanego ciągu.
Przykład 1: Używanie 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); )
Wynik
('JavaScript', indeks: 14, wejście: 'Uczę się JavaScript, a nie Java.', Grupy: nieokreślone) ('Java', indeks: 29, wejście: 'Uczę się JavaScript, a nie Java.', Grupy: niezdefiniowane)
W tym przypadku zwracany iterator jest iterowany za pomocą for… of
pętli.
Przykład 2: Używanie matchAll do przechwytywania grup
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'))`) )
Wynik
Znaleziono „name is Albert”. w indeksie 3. Przechwycone imię = Albert Znaleziono „NAZWA to Soyuj”. pod indeksem 24. Przechwycona nazwa = Soyuj
Tutaj użyliśmy wyrażenia regularnego, aby dopasować określoną część ciągu. Możemy przechwytywać określone grupy w meczu, używając matchAll()
lepszego niż match()
.
Zalecana lektura: JavaScript String match ()