La méthode JavaScript String matchAll () renvoie un itérateur des résultats de la mise en correspondance d'une chaîne avec une expression régulière.
La syntaxe de la matchAll()
méthode est:
str.matchAll(regexp)
Voici str
une chaîne.
Paramètres matchAll ()
La matchAll()
méthode prend en compte:
- regexp - Un objet d'expression régulière (l'argument est implicitement converti en
RegExp
s'il s'agit d'un non-RegExp
objet)
Remarque: Si l' RegExp
objet n'a pas le /g
drapeau, un TypeError
sera lancé.
Valeur renvoyée par matchAll ()
- Renvoie un itérateur contenant les correspondances, y compris les groupes de capture.
Remarque : chaque élément de l'itérateur renvoyé aura les propriétés supplémentaires suivantes:
groups
- Un objet de groupes de capture nommés ayant des clés comme noms et des valeurs en tant que correspondances capturées.index
- L'index de recherche où le résultat a été trouvé.input
- Une copie de la chaîne de recherche.
Exemple 1: Utilisation de 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); )
Production
('JavaScript', index: 14, entrée: 'J'apprends JavaScript pas Java.', Groupes: undefined) ('Java', index: 29, entrée: 'J'apprends JavaScript et non Java.', Groupes: undefined)
Ici, l'itérateur renvoyé est itéré en utilisant la for… of
boucle.
Exemple 2: Utilisation de matchAll pour capturer des groupes
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'))`) )
Production
Trouvé "nom est Albert." à l'index 3. Captured name = Albert Trouvé "NAME is Soyuj." à l'index 24. Nom capturé = Soyuj
Ici, nous avons utilisé une expression régulière pour correspondre à une certaine partie de la chaîne. Nous pouvons capturer certains groupes dans le match en utilisant matchAll()
mieux que match()
.
Lecture recommandée: correspondance de chaîne JavaScript ()