Metodo match in JavaScript: estrarre corrispondenze da una Stringa

JavaScript offre molteplici metodi per lavorare con le stringhe, e uno di essi è match(). Questo potente metodo ci consente di estrarre corrispondenze di testo da una stringa utilizzando espressioni regolari. La sintassi del metodo match viene riportata di seguito:

stringa.match(regexp)

Il metodo match() accetta un parametro obbligatorio, regexp, che rappresenta un'espressione regolare che definisce il modello di ricerca. Quando chiamiamo match(), restituirà un array contenente tutte le corrispondenze trovate oppure null, se nessuna corrispondenza viene trovata.

let testo = "JavaScript è un linguaggio di programmazione potente.";
let pattern = /linguaggio/;
console.log(testo.match(pattern));

Output:
[
	'linguaggio',
	index: 16,
	input: 'JavaScript è un linguaggio di programmazione potente.',
	groups: undefined
]

Come possiamo notare, oltre al termine ricercato, viene restituito anche l’indice e l’intera stringa di input. Questo succede quando non viene utilizzato il flag globale g, ovvero il flag che permette di restituire più elementi che soddisfano il pattern definito.

Esempio: utilizzare espressioni regolari globali

Se vogliamo trovare tutte le corrispondenze nella stringa, possiamo utilizzare un'espressione regolare globale aggiungendo la bandiera "g". Nel seguente esempio viene utilizzata l’espressione regolare globale per restituire tutti i numeri di telefono presenti nella stringa iniziale.

let testo = "Il numero di telefono è 123-456-7890 e un altro 987-654-3210";
let pattern = /\d{3}-\d{3}-\d{4}/g;
console.log(testo.match(pattern)); // Stampa: ["123-456-7890", "987-654-3210"]

In questo caso, visto che abbiamo utilizzato il flag g, ci vengono restituite le corrispondenze, senza le informazioni aggiuntive che avevamo nel caso precedente.

Esempio: utilizzare metacaratteri nelle espressioni regolari

I metacaratteri nelle espressioni regolari consentono di identificare caratteri speciali come spazi vuoti, cifre, lettere, ecc.. Ad esempio:

let testo = "JavaScript è un linguaggio di programmazione.";
let pattern = /\w+/g; // \w+ trova tutte le parole
console.log(testo.match(pattern)); // Stampa: ["JavaScript", "è", "un", "linguaggio", "di", "programmazione"]