De JavaScript String matchAll () - methode retourneert een iterator van resultaten van het matchen van een string met een reguliere expressie.
De syntaxis van de matchAll()
methode is:
str.matchAll(regexp)
Hier str
is een string.
matchAll () Parameters
De matchAll()
methode omvat:
- regexp - Een reguliere expressie-object (argument wordt impliciet geconverteerd naar
RegExp
als het een niet-RegExp
object is)
Opmerking: als het RegExp
object geen /g
vlag heeft, TypeError
wordt er een geworpen.
Retourwaarde van matchAll ()
- Retourneert een iterator die de overeenkomsten bevat, inclusief de vastleggende groepen.
Opmerking : de geretourneerde iterator van elk item heeft de volgende aanvullende eigenschappen:
groups
- Een object van benoemde vastleggende groepen met sleutels als de namen en waarden als de vastgelegde overeenkomsten.index
- De zoekindex waarin het resultaat is gevonden.input
- Een kopie van de zoekterm.
Voorbeeld 1: matchAll () gebruiken
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); )
Uitvoer
('JavaScript', index: 14, invoer: 'Ik leer JavaScript, geen Java.', Groepen: ongedefinieerd) ('Java', index: 29, invoer: 'Ik leer JavaScript niet Java.', Groepen: niet gedefinieerd)
Hier wordt de geretourneerde iterator herhaald met behulp van de for… of
lus.
Voorbeeld 2: matchAll gebruiken om groepen vast te leggen
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'))`) )
Uitvoer
Gevonden "naam is Albert." bij index 3. Gevangen naam = Albert Gevonden "NAAM is Soyuj." bij index 24. Gevangen naam = Soyuj
Hier hebben we een reguliere expressie gebruikt om een bepaald gedeelte van de string te matchen. We kunnen bepaalde groepen in de wedstrijd vastleggen met matchAll()
beter dan match()
.
Aanbevolen literatuur: JavaScript String-overeenkomst ()