Il metodo JavaScript String matchAll () restituisce un iteratore dei risultati della corrispondenza di una stringa con un'espressione regolare.
La sintassi del matchAll()
metodo è:
str.matchAll(regexp)
Ecco str
una stringa.
parametri matchAll ()
Il matchAll()
metodo comprende:
- regexp - Un oggetto espressione regolare (l'argomento viene convertito implicitamente in
RegExp
se non è unRegExp
oggetto)
Nota: se l' RegExp
oggetto non ha il /g
flag, TypeError
verrà lanciato un.
Valore restituito da matchAll ()
- Restituisce un iteratore contenente le corrispondenze, inclusi i gruppi di acquisizione.
Nota : ogni articolo dell'iteratore restituito avrà le seguenti proprietà aggiuntive:
groups
- Un oggetto di gruppi di acquisizione con nome che hanno chiavi come nomi e valori come corrispondenze acquisite.index
- L'indice di ricerca in cui è stato trovato il risultato.input
- Una copia della stringa di ricerca.
Esempio 1: utilizzo di 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); )
Produzione
("JavaScript", indice: 14, input: "Sto imparando JavaScript non Java.", Gruppi: undefined) ("Java", indice: 29, input: "Sto imparando JavaScript non Java.", Gruppi: undefined)
Qui, l'iteratore restituito viene iterato utilizzando il for… of
ciclo.
Esempio 2: utilizzo di matchAll per acquisire i gruppi
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'))`) )
Produzione
Trovato "name is Albert". all'indice 3. Nome catturato = Albert Trovato "NAME is Soyuj." all'indice 24. Nome catturato = Soyuj
Qui abbiamo usato un'espressione regolare per trovare una corrispondenza con una certa parte della stringa. Possiamo catturare alcuni gruppi nella partita usando matchAll()
meglio di match()
.
Letture consigliate: JavaScript String Match ()