Metoda JavaScript String matchAll () returnează un iterator al rezultatelor potrivirii unui șir cu o expresie regulată.
Sintaxa matchAll()
metodei este:
str.matchAll(regexp)
Iată str
un șir.
matchAll () Parametri
matchAll()
Metoda ia în:
- regexp - Un obiect de expresie regulată (Argumentul este implicit convertit în
RegExp
dacă este un non-RegExp
obiect)
Notă: Dacă RegExp
obiectul nu are /g
pavilion, TypeError
va fi aruncat un.
Returnează valoarea din matchAll ()
- Returnează un iterator care conține meciurile, inclusiv grupurile de capturare.
Notă : Fiecare articol al iteratorului returnat va avea următoarele proprietăți suplimentare:
groups
- Un obiect al grupurilor de capturare numite cu chei ca nume și valori ca potriviri capturate.index
- Indexul căutării unde a fost găsit rezultatul.input
- O copie a șirului de căutare.
Exemplul 1: Utilizarea 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); )
Ieșire
(„JavaScript”, index: 14, intrare: „Învăț JavaScript nu Java.”, Grupuri: nedefinit) („Java”, index: 29, intrare: „Învăț JavaScript nu Java.”, Grupuri: nedefinit)
Aici, iteratorul returnat este iterat folosind for… of
bucla.
Exemplul 2: Utilizarea matchAll pentru a captura grupuri
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'))`) )
Ieșire
S-a găsit „numele este Albert”. la indexul 3. Numele capturat = Albert S-a găsit „NUME este Soyuj”. la index 24. Nume capturat = Soyuj
Aici, am folosit o expresie regulată pentru a se potrivi cu o anumită porțiune a șirului. Putem captura anumite grupuri în meci folosind matchAll()
mai bine decât match()
.
Lectură recomandată: potrivirea șirului JavaScript ()