Il metodo JavaScript String match () restituisce il risultato della corrispondenza di una stringa con un'espressione regolare.
La sintassi del match()
metodo è:
str.match(regexp)
Qui str è una stringa.
match () Parametri
Il match()
metodo comprende:
- regexp - Un oggetto espressione regolare (l'argomento viene convertito implicitamente in
RegExp
se non è unRegExp
oggetto)
Nota: se non fornisci alcun parametro, match()
restituisce ("")
.
Valore restituito dalla corrispondenza ()
- Restituisce un
Array
elemento contenente le corrispondenze, un elemento per ciascuna corrispondenza. - Restituisce
null
se non viene trovata alcuna corrispondenza.
Esempio 1: utilizzo di match ()
const string = "I am learning JavaScript not Java."; const re = /Java/; let result = string.match(re); console.log("Result of matching /Java/ :"); console.log(result); const re1 = /Java/g; let result1 = string.match(re1); console.log("Result of matching /Java/ with g flag:") console.log(result1);
Produzione
Risultato della corrispondenza / Java /: ('Java', indice: 14, input: 'Sto imparando JavaScript non Java.', Gruppi: undefined) Risultato della corrispondenza / Java / con flag g: ('Java', 'Java' )
Qui, possiamo vedere che senza utilizzare il g
flag, otteniamo solo la prima corrispondenza come risultato ma con informazioni dettagliate come indice, input e gruppi.
Nota : se l'espressione regolare non include il g
flag, str.match()
restituirà solo la prima corrispondenza simile a RegExp.exec()
. L'articolo restituito avrà anche 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 2: sezioni corrispondenti nella stringa
const string = "My name is Albert. YOUR NAME is Soyuj."; // expression matches case-insensitive "name is"+ any alphabets till period (.) const re = /namesiss(a-zA-Z)+./gi; let result = string.match(re); console.log(result); // ( 'name is Albert.', 'NAME is Soyuj.' ) // using named capturing groups const re1 = /namesiss(?(a-zA-Z)+)./i; let found = string.match(re1); console.log(found.groups); // (name: "Albert")
Produzione
("name is Albert.", "NAME is Soyuj.") (nome: "Albert")
Qui abbiamo usato un'espressione regolare per trovare una corrispondenza con una certa parte della stringa. Possiamo anche catturare alcuni gruppi nella partita usando la sintassi come mostrato sopra.
Lettura consigliata: JavaScript String matchAll ()