Espressioni regolari in JavaScript: un'introduzione

Ultimo aggiornamento: 5 Novembre 2025.
Espressioni regolari in JavaScript

Benvenuti a questa guida completa alle espressioni regolari in JavaScript! In questo articolo esploreremo nel dettaglio cosa sono le espressioni regolari, come vengono utilizzate in JavaScript e come possono aiutarti a semplificare e ottimizzare il tuo codice. Dalle basi agli esempi pratici, spiegheremo tutto ciò che devi sapere per iniziare a sfruttare al meglio le espressioni regolari nei tuoi progetti JavaScript. Allora cominciamo!

Introduzione alle espressioni regolari

Le espressioni regolari sono modelli di ricerca utilizzati per trovare e manipolare il testo nelle stringhe di caratteri. Sono costituiti da una combinazione di caratteri letterali e metacaratteri, che definiscono regole specifiche per trovare corrispondenze nel testo. Queste regole possono includere la ricerca di caratteri specifici, intervalli di caratteri, ripetizioni, alternative e molto altro.

In JavaScript, le espressioni regolari vengono create utilizzando la classe RegExp o usando il letterale /patrón/. Il modello è l'espressione regolare stessa, racchiusa tra barre. Diamo un'occhiata a un semplice esempio:

const regex = /hola/;

 

In questo esempio, abbiamo creato un'espressione regolare che cercherà la stringa "ciao" all'interno di un testo. Ora che abbiamo una conoscenza di base sulle espressioni regolari, esploriamo alcuni concetti chiave e tecniche avanzate per lavorarci in JavaScript.

Sintassi di base delle espressioni regolari

Le espressioni regolari in JavaScript sono composte da diversi elementi chiave che consentono di definire modelli di ricerca più complessi. Questi elementi includono caratteri letterali, metacaratteri, classi di caratteri, quantificatori, ancore e altro ancora. Diamo un'occhiata ad alcuni esempi di questi elementi:

Caratteri letterali

I caratteri letterali sono quelli che vengono ricercati così come appaiono nel testo. Ad esempio, l'espressione regolare /hola/ cercherà la sequenza di caratteri "ciao" in una stringa di testo. È importante notare che le espressioni regolari sono sensibili alle maiuscole e alle minuscole, quindi /hola/ non corrisponderà a "Ciao" o "HELLO".

Metacaratteri

I metacaratteri sono caratteri speciali che hanno un significato particolare nelle espressioni regolari. Ad esempio, il metacarattere . Viene utilizzato per rappresentare qualsiasi carattere, eccetto la nuova riga. Un altro metacarattere comune è il ^, che viene utilizzato per indicare l'inizio di una stringa di testo. Ad esempio, l'espressione regolare /^hola/ corrisponderà a qualsiasi stringa di testo che inizia con "hello".

Classi di personaggi

Le classi di caratteri vengono utilizzate per cercare qualsiasi carattere all'interno di un set specifico. Ad esempio, l'espressione regolare /[aeiou]/ corrisponderà a qualsiasi vocale in una stringa di testo. È anche possibile utilizzare intervalli di caratteri nelle classi di caratteri. Ad esempio, l'espressione regolare /[a-z]/ corrisponderà a qualsiasi lettera minuscola.

Quantificatori

I quantificatori vengono utilizzati per specificare il numero di occorrenze di un elemento in un'espressione regolare. Ad esempio, il quantificatore * indica che l'elemento precedente può comparire zero o più volte. Il quantificatore + indica che l'elemento precedente deve apparire una o più volte. Ad esempio, l'espressione regolare /a+/ corrisponderà a una o più "a" in una stringa di testo.

ancore

Le ancore vengono utilizzate per indicare la posizione di una corrispondenza all'interno di una stringa di testo. Ad esempio, l'ancora \b corrisponde al confine di una parola. Ad esempio, l'espressione regolare /bholab/ corrisponderà solo alla parola "ciao" come parola completa, senza abbinare parole più lunghe che contengono "ciao" come parte di esse.

Questi sono solo alcuni esempi della sintassi di base delle espressioni regolari in JavaScript. Nel corso di questo articolo , esploreremo concetti e tecniche più avanzati per lavorare con le espressioni regolari in JavaScript.

Ricerca di corrispondenza di base

Una delle operazioni più comuni eseguite con le espressioni regolari è la ricerca di corrispondenze in una stringa di testo. In JavaScript, possiamo usare il metodo search() per trovare la prima corrispondenza di un'espressione regolare in una stringa di testo. Vediamo un esempio:

const texto = "¡Hola, mundo!";
const regex = /mundo/;
const indice = texto.search(regex);
console.log(indice); // 7

In questo esempio abbiamo utilizzato il metodo search() per trovare la prima corrispondenza dell'espressione regolare /mundo/ nella stringa di testo "Ciao, mondo!" Il metodo search() restituisce l'indice della prima corrispondenza trovata oppure -1 se non viene trovata alcuna corrispondenza.

Oltre al metodo search(), JavaScript fornisce anche altri metodi utili per lavorare con espressioni regolari, come match(), replace(), split() y test(). Ognuno di questi metodi ha il suo scopo e può essere utilizzato in base alle proprie esigenze specifiche.

Utilizzo di modificatori e flag

In JavaScript, le espressioni regolari possono contenere modificatori e flag che consentono ricerche più flessibili e personalizzate. I modificatori vengono aggiunti alla fine di un'espressione regolare e ne modificano il comportamento. Alcuni dei modificatori più comuni sono:

io (insensibile)

Il modificatore i viene utilizzato per eseguire una ricerca senza distinzione tra maiuscole e minuscole. Ad esempio, l'espressione regolare /hola/i corrisponderà sia a "hello" che a "Hello" o "HELLO".

g (globale)

Il modificatore g Viene utilizzato per eseguire una ricerca globale sull'intera stringa di testo, anziché fermarsi alla prima corrispondenza trovata. Ad esempio, l'espressione regolare /a+/g corrisponderà a tutte le occorrenze di una o più "a" in una stringa di testo.

  Gestione delle dipendenze: una guida completa per progetti e prodotti

m (multilinea)

Il modificatore m Viene utilizzato per eseguire una ricerca su più righe all'interno di una stringa di testo. Ad esempio, l'espressione regolare /^hola/m troverà la parola "ciao" all'inizio di ogni riga in una stringa di testo.

Oltre ai modificatori, JavaScript consente anche l'uso di flag nelle espressioni regolari. I flag vengono aggiunti dopo la seconda barra quando si crea un'espressione regolare utilizzando la classe RegExp. Alcune delle bandiere più comuni sono:

io (insensibile)

Come il modificatore i, la bandiera i esegue una ricerca senza distinzione tra maiuscole e minuscole. Ad esempio, l'espressione regolare new RegExp("hola", "i") corrisponderà sia a "hello" che a "Hello" o "HELLO".

g (globale)

Come il modificatore g, la bandiera g esegue una ricerca globale sull'intera stringa di testo. Ad esempio, l'espressione regolare new RegExp("a+", "g") corrisponderà a tutte le occorrenze di una o più "a" in una stringa di testo.

m (multilinea)

Come il modificatore m, la bandiera m esegue una ricerca su più righe all'interno di una stringa di testo. Ad esempio, l'espressione regolare new RegExp("^hola", "m") troverà la parola "ciao" all'inizio di ogni riga in una stringa di testo.

L'utilizzo di modificatori e flag nelle espressioni regolari JavaScript può essere molto utile per adattare le ricerche a diversi casi e requisiti specifici. Sperimenta e scopri come sfruttare al meglio queste funzionalità nel tuo codice.

Metacaratteri e caratteri speciali

I metacaratteri e i caratteri speciali sono elementi chiave nelle espressioni regolari che consentono di eseguire ricerche più potenti e flessibili. Abbiamo già menzionato alcuni metacaratteri, come . y ^, ma ce ne sono molti altri che puoi utilizzare nelle tue espressioni regolari. Diamo un'occhiata ad alcuni dei metacaratteri e caratteri speciali più comuni:

. (macchiare)

Il metacarattere . Viene utilizzato per rappresentare qualsiasi carattere, eccetto la nuova riga. Ad esempio, l'espressione regolare /h.t/ corrisponderà a "cappello", "caldo", "colpo" e qualsiasi altra parola di tre lettere che inizia con "h" e finisce con "t".

\ (barra rovesciata)

La barra rovesciata viene utilizzata per eseguire l'escape di caratteri speciali in un'espressione regolare. Ad esempio, se si desidera cercare un punto letterale in una stringa di testo, è necessario eseguirne l'escape utilizzando la barra rovesciata. L'espressione regolare /www\.google\.com/ corrisponderà alla stringa di testo "www.google.com".

\d (cifra)

Il metacarattere \d viene utilizzato per cercare qualsiasi cifra da 0 a 9. Ad esempio, l'espressione regolare /\d+/ corrisponderà a qualsiasi numero di una o più cifre in una stringa di testo.

\w (carattere alfanumerico)

Il metacarattere \w viene utilizzato per cercare qualsiasi carattere alfanumerico (lettere maiuscole e minuscole, cifre e caratteri di sottolineatura). Ad esempio, l'espressione regolare /\w+/ corrisponderà a qualsiasi parola composta da uno o più caratteri alfanumerici in una stringa di testo.

Questi sono solo alcuni esempi dei metacaratteri e dei caratteri speciali che puoi utilizzare nelle espressioni regolari. Man mano che acquisirai familiarità con le espressioni regolari in JavaScript, scoprirai un'ampia gamma di opzioni per perfezionare le tue ricerche e le manipolazioni del testo.

Classi e intervalli di caratteri

Le classi di caratteri sono un altro elemento chiave nelle espressioni regolari che consentono di cercare qualsiasi carattere all'interno di un set specifico. In JavaScript possiamo usare le parentesi [] per definire una classe di caratteri. Diamo un'occhiata ad alcuni esempi di classi e intervalli di caratteri:

[ahi]

La classe del personaggio [aeiou] corrisponderà a qualsiasi vocale in una stringa di testo. Ad esempio, l'espressione regolare /[aeiou]/ corrisponderà a "a", "e", "i", "o" o "u" in una stringa di testo.

[az]

La gamma dei personaggi [a-z] corrisponderà a qualsiasi lettera minuscola dell'alfabeto inglese. Ad esempio, l'espressione regolare /[a-z]/ corrisponderà a qualsiasi lettera minuscola in una stringa di testo.

[0-9]

La gamma dei personaggi [0-9] corrisponderà a qualsiasi cifra da 0 a 9 in una stringa di testo. Ad esempio, l'espressione regolare /[0-9]/ corrisponderà a qualsiasi numero composto da una sola cifra.

[A-Za-z]

La classe del personaggio [A-Za-z] corrisponderà a qualsiasi lettera maiuscola o minuscola dell'alfabeto inglese. Ad esempio, l'espressione regolare /[A-Za-z]/ corrisponderà a qualsiasi lettera in una stringa di testo.

Le classi e gli intervalli di caratteri consentono di definire set specifici di caratteri da ricercare in un'espressione regolare. Utilizzali per adattare le tue ricerche alle tue esigenze e restrizioni specifiche.

Quantificatori e ripetizioni

I quantificatori e le ripetizioni sono elementi chiave nelle espressioni regolari che consentono di specificare il numero di occorrenze di un elemento in una stringa di testo. Diamo un'occhiata ad alcuni dei quantificatori più comuni in JavaScript:

* (asterisco)

Il quantificatore * indica che l'elemento precedente può comparire zero o più volte. Ad esempio, l'espressione regolare /a*/ corrisponderà a zero o più 'a' in una stringa di testo.

  Studio dettagliato sulle vulnerabilità XSS persistenti

+ (In più)

Il quantificatore + indica che l'elemento precedente deve apparire una o più volte. Ad esempio, l'espressione regolare /a+/ corrisponderà a una o più "a" in una stringa di testo.

? (domanda)

Il quantificatore ? indica che l'elemento precedente può comparire zero o una volta. Ad esempio, l'espressione regolare /colou?r/ corrisponderà sia a "colore" che a "colore".

{n} (esattamente n volte)

Il quantificatore {n} indica che l'elemento precedente deve comparire esattamente n volte. Ad esempio, l'espressione regolare /a{3}/ corrisponderà esattamente a tre "a" in una stringa di testo.

{n,} (almeno n volte)

Il quantificatore {n,} indica che l'elemento precedente deve comparire almeno n volte. Ad esempio, l'espressione regolare /a{2,}/ corrisponderà a due o più "a" in una stringa di testo.

{m}

Il quantificatore {n,m} indica che l'elemento precedente deve comparire almeno n volte e al massimo m volte. Ad esempio, l'espressione regolare /a{2,4}/ corrisponderà a due, tre o quattro "a" in una stringa di testo.

Questi sono solo alcuni esempi di quantificatori che puoi utilizzare nelle tue espressioni regolari. I quantificatori consentono di specificare modelli di ripetizione nelle ricerche e nelle manipolazioni di testo, semplificando l'estrazione di informazioni specifiche dalle stringhe di testo.

Ancore e confini delle parole

Le ancore e i limiti di parola sono elementi che consentono di indicare la posizione di una corrispondenza all'interno di una stringa di testo. Questi elementi sono particolarmente utili quando vogliamo cercare parole intere o assicurarci che una corrispondenza si trovi all'inizio o alla fine di una riga. Diamo un'occhiata ad alcuni esempi di ancore e confini di parola:

\b (confine di parola)

Il limite di parole \b corrisponde al confine tra un carattere alfanumerico e un carattere non alfanumerico. Ad esempio, l'espressione regolare /\bjavascript\b/ corrisponderà solo alla parola "javascript" come parola completa, non corrisponderà a parole più lunghe che contengono "javascript" come parte di esse.

^ (inizio riga)

Il personaggio ^ Viene utilizzato per indicare l'inizio di una riga in una stringa di testo. Ad esempio, l'espressione regolare /^hola/ troverà la parola "ciao" all'inizio di ogni riga in una stringa di testo.

$ (fine riga)

Il personaggio $ Viene utilizzato per indicare la fine di una riga in una stringa di testo. Ad esempio, l'espressione regolare /mundo$/ troverà la parola "world" alla fine di ogni riga di una stringa di testo.

\A (inizio del testo)

Il personaggio \A Viene utilizzato per indicare l'inizio di tutto il testo in una stringa di testo, non solo l'inizio di una riga. Ad esempio, l'espressione regolare /^\AHola/ corrisponderà alla parola "Ciao" all'inizio dell'intero testo.

\Z (fine del testo)

Il personaggio \Z viene utilizzato per indicare la fine di tutto il testo in una stringa di testo, non solo la fine di una riga. Ad esempio, l'espressione regolare /Mundo\Z/ corrisponderà alla parola "Mondo" alla fine dell'intero testo.

Le ancore e i limiti di parola ci consentono di cercare corrispondenze in posizioni specifiche all'interno di una stringa di testo, il che può essere utile in situazioni in cui vogliamo assicurarci che una corrispondenza si trovi in ​​una posizione specifica.

Gruppi e catture

I gruppi e le catture sono elementi avanzati nelle espressioni regolari che consentono di raggruppare le sottoespressioni e di catturarle per un uso successivo. Vediamo come funzionano i gruppi e le catture:

( ) (parentesi)

Le parentesi sono Usano raggruppare sottoespressioni in un'espressione regolare. Ad esempio, l'espressione regolare /(d{2})-(d{2})-(d{4})/ se utilizzato per cercare una data nel formato "gg-mm-aaaa. I gruppi ( ) Permettono di acquisire separatamente i valori di giorno, mese e anno.

\1, \2, \3 (riferimenti di gruppo)

I riferimenti di gruppo vengono utilizzati per fare riferimento a gruppi precedentemente acquisiti in un'espressione regolare. Ad esempio, l'espressione regolare /(\w+) \1/ corrisponderà a qualsiasi parola seguita dalla stessa parola ripetuta. Ad esempio, "ciao ciao", "mondo mondo", ecc.

?: (gruppo non catturante)

Il simbolo ?: Viene utilizzato per creare gruppi non catturanti. Questi gruppi vengono utilizzati quando vogliamo raggruppare le sottoespressioni, ma non vogliamo catturare il risultato. Ad esempio, l'espressione regolare /https?:\/\/(?:www\.)?google\.com/ corrisponderà sia a “http://www.google.com” che a “https://google.com”, ma catturerà solo la parte rilevante dell’URL.

I gruppi e le acquisizioni ci permettono di strutturare e organizzare le nostre espressioni regolari in modo più efficiente e leggibile. Offrono inoltre la possibilità di acquisire valori specifici per un utilizzo successivo nelle nostre applicazioni.

Metodi utili per lavorare con le espressioni regolari

JavaScript fornisce diversi metodi utili per lavorare con le espressioni regolari. Questi metodi consentono di eseguire operazioni comuni come la ricerca, la sostituzione e la suddivisione di stringhe di testo utilizzando espressioni regolari. Diamo un'occhiata ad alcuni di questi metodi:

incontro()

Il metodo match() Viene utilizzato per trovare tutte le corrispondenze di un'espressione regolare in una stringa di testo e restituire un array con i risultati. Per esempio:

const texto = "¡Hola, mundo!";
const regex = /o/g;
const coincidencias = texto.match(regex);
console.log(coincidencias); // ["o", "o"]

In questo esempio abbiamo utilizzato il metodo match() per trovare tutte le corrispondenze dell'espressione regolare /o/g nella stringa di testo "Ciao, mondo!" Il metodo match() restituisce un array con tutte le corrispondenze trovate.

  SOLID nella programmazione: guida definitiva con esempi e consigli pratici

sostituire ()

Il metodo replace() viene utilizzato per sostituire le corrispondenze di un'espressione regolare in una stringa di testo con un nuovo valore. Per esempio:

const texto = "¡Hola, mundo!";
const regex = /mundo/;
const nuevoTexto = texto.replace(regex, "amigo");
console.log(nuevoTexto); // "¡Hola, amigo!"

In questo esempio abbiamo utilizzato il metodo replace() per sostituire la corrispondenza dell'espressione regolare /mundo/ nella stringa di testo "Ciao, mondo!" per la parola "amico". Il metodo replace() restituisce una nuova stringa di testo con le sostituzioni effettuate.

Diviso()

Il metodo split() viene utilizzato per dividere una stringa di testo in un array di sottostringhe utilizzando un'espressione regolare come separatore. Per esempio:

const texto = "Hola,mundo,amigo";
const regex = /,/g;
const subcadenas = texto.split(regex);
console.log(subcadenas); // ["Hola", "mundo", "amigo"]

In questo esempio abbiamo utilizzato il metodo split() per dividere la stringa di testo "Hello,world,friend" in un array di sottostringhe utilizzando l'espressione regolare /,/g come separatore. Il metodo split() restituisce un array con le sottostringhe risultanti.

test()

Il metodo test() Viene utilizzato per verificare se un'espressione regolare ha corrispondenze in una stringa di testo. Il metodo restituisce true se c'è una corrispondenza e false Altrimenti. Per esempio:

const texto = "Hola, mundo!";
const regex = /mundo/;
const resultado = regex.test(texto);
console.log(resultado); // true

In questo esempio abbiamo utilizzato il metodo test() per verificare se l'espressione regolare /mundo/ contiene corrispondenze nella stringa di testo "Hello, world!". Il metodo test() Portare indietro true perché c'è una coincidenza.

Questi sono solo alcuni dei metodi più comuni per lavorare con le espressioni regolari in JavaScript. Ognuno di questi metodi ha il suo scopo e può essere utilizzato in base alle proprie esigenze specifiche. Sperimentateli e scoprite come possono rendere più semplice e veloce il vostro lavoro con le espressioni regolari.

Domande frequenti

Cosa sono le espressioni regolari in JavaScript? Le espressioni regolari in JavaScript sono modelli di ricerca utilizzati per trovare e manipolare il testo all'interno di stringhe di caratteri.

Come creare espressioni regolari in JavaScript? Le espressioni regolari in JavaScript vengono create utilizzando la classe RegExp o usando il letterale /patrón/.

Qual è la differenza tra modificatori e flag nelle espressioni regolari? I modificatori vengono aggiunti alla fine di un'espressione regolare e ne modificano il comportamento. I flag vengono aggiunti dopo la seconda barra quando si crea un'espressione regolare utilizzando la classe RegExp.

Qual è la differenza tra il metodo match() e il metodo test()? Il metodo match() Viene utilizzato per trovare tutte le corrispondenze di un'espressione regolare in una stringa di testo e restituisce un array con i risultati. Il metodo test() Viene utilizzato per verificare se un'espressione regolare ha corrispondenze in una stringa di testo e restituisce un valore booleano.

Come posso catturare valori specifici utilizzando i gruppi in un'espressione regolare? I gruppi ( ) in un'espressione regolare consentono di catturare sottoespressioni specifiche. È quindi possibile fare riferimento a questi gruppi utilizzando i riferimenti \1, \2, ecc.

Quali metodi posso utilizzare per lavorare con le espressioni regolari in JavaScript? Alcuni metodi utili per lavorare con le espressioni regolari in JavaScript sono match(), replace(), split() y test(). Ognuno di questi metodi ha il suo scopo e può essere utilizzato in base alle proprie esigenze specifiche.

Conclusione

Le espressioni regolari sono uno strumento potente per lavorare con il testo in JavaScript. Comprendere le basi , la sintassi e le tecniche avanzate delle espressioni regolari ti permetterà di cercare, sostituire e manipolare stringhe di testo in modo efficiente e preciso. Dalla corrispondenza di base all'utilizzo di modificatori, gruppi e altri metodi utili, hai imparato a sfruttare al meglio le espressioni regolari nei tuoi progetti JavaScript.

Ricordatevi di esercitarvi e sperimentare diversi modelli e casi d'uso per rafforzare la vostra comprensione e familiarità con le espressioni regolari. Non esitate a utilizzare le espressioni regolari per migliorare l'efficienza e la qualità del vostro codice!