Espressioni regolari JavaScript
Un'espressione regolare è una sequenza di caratteri che forma un modello di ricerca.
Il modello di ricerca può essere utilizzato per la ricerca di testo e le operazioni di sostituzione del testo.
Che cos'è un'espressione regolare?
Un'espressione regolare è una sequenza di caratteri che forma un modello di ricerca .
Quando cerchi dati in un testo, puoi utilizzare questo modello di ricerca per descrivere ciò che stai cercando.
Un'espressione regolare può essere un singolo carattere o un modello più complicato.
Le espressioni regolari possono essere utilizzate per eseguire tutti i tipi di operazioni di ricerca e sostituzione di testo .
Sintassi
/pattern/modifiers;
Esempio
/w3schools/i;
Esempio spiegato:
/w3schools/i è un'espressione regolare.
w3schools è un pattern (da usare in una ricerca).
i è un modificatore (modifica la ricerca in modo che non faccia distinzione tra maiuscole e minuscole).
Utilizzo di metodi di stringa
In JavaScript, le espressioni regolari vengono spesso utilizzate con i due metodi di stringa : search()
e replace()
.
Il search()
metodo utilizza un'espressione per cercare una corrispondenza e restituisce la posizione della corrispondenza.
Il replace()
metodo restituisce una stringa modificata in cui viene sostituito il modello.
Utilizzo di String search() con una stringa
Il search()
metodo cerca in una stringa un valore specificato e restituisce la posizione della corrispondenza:
Esempio
Usa una stringa per cercare "W3schools" in una stringa:
let text = "Visit W3Schools!";
let n = text.search("W3Schools");
Il risultato in n sarà:
6
Utilizzo di String search() con un'espressione regolare
Esempio
Utilizzare un'espressione regolare per eseguire una ricerca senza distinzione tra maiuscole e minuscole per "w3schools" in una stringa:
let text = "Visit W3Schools";
let n = text.search(/w3schools/i);
Il risultato in n sarà:
6
Utilizzo di String replace() con una stringa
Il replace()
metodo sostituisce un valore specificato con un altro valore in una stringa:
let text = "Visit Microsoft!";
let result = text.replace("Microsoft", "W3Schools");
Usa String replace() con un'espressione regolare
Esempio
Utilizzare un'espressione regolare senza distinzione tra maiuscole e minuscole per sostituire Microsoft con W3Schools in una stringa:
let text = "Visit Microsoft!";
let result = text.replace(/microsoft/i, "W3Schools");
Il risultato in ris sarà:
Visit W3Schools!
Hai notato?
Gli argomenti dell'espressione regolare (invece degli argomenti stringa) possono essere utilizzati nei metodi precedenti.
Le espressioni regolari possono rendere la tua ricerca molto più potente (senza distinzione tra maiuscole e minuscole, ad esempio).
Modificatori di espressioni regolari
I modificatori possono essere utilizzati per eseguire ricerche più globali senza distinzione tra maiuscole e minuscole:
Modifier | Description | Try it |
---|---|---|
i | Perform case-insensitive matching | |
g | Perform a global match (find all matches rather than stopping after the first match) | |
m | Perform multiline matching |
Modelli di espressioni regolari
Le parentesi vengono utilizzate per trovare un intervallo di caratteri:
Expression | Description | Try it |
---|---|---|
[abc] | Find any of the characters between the brackets | |
[0-9] | Find any of the digits between the brackets | |
(x|y) | Find any of the alternatives separated with | |
I metacaratteri sono caratteri con un significato speciale:
Metacharacter | Description | Try it |
---|---|---|
\d | Find a digit | |
\s | Find a whitespace character | |
\b | Find a match at the beginning of a word like this: \bWORD, or at the end of a word like this: WORD\b |
|
\uxxxx | Find the Unicode character specified by the hexadecimal number xxxx |
I quantificatori definiscono le quantità:
Quantifier | Description | Try it |
---|---|---|
n+ | Matches any string that contains at least one n | |
n* | Matches any string that contains zero or more occurrences of n | |
n? | Matches any string that contains zero or one occurrences of n |
Utilizzando l'oggetto RegExp
In JavaScript, l'oggetto RegExp è un oggetto di espressione regolare con proprietà e metodi predefiniti.
Usando test()
Il test()
metodo è un metodo di espressione RegExp.
Cerca in una stringa un pattern e restituisce true o false, a seconda del risultato.
L'esempio seguente cerca in una stringa il carattere "e":
Esempio
const pattern = /e/;
pattern.test("The best things in life are free!");
Poiché nella stringa è presente una "e", l'output del codice sopra sarà:
true
Non è necessario inserire prima l'espressione regolare in una variabile. Le due righe sopra possono essere abbreviate in una:
/e/.test("The best things in life are free!");
Usando exec()
Il exec()
metodo è un metodo di espressione RegExp.
Cerca in una stringa un modello specificato e restituisce il testo trovato come oggetto.
Se non viene trovata alcuna corrispondenza, restituisce un oggetto vuoto (null) .
L'esempio seguente cerca in una stringa il carattere "e":
Esempio
/e/.exec("The best things in life are free!");
Riferimento RegExp completo
Per un riferimento completo, vai al nostro Riferimento completo JavaScript RegExp .
Il riferimento contiene descrizioni ed esempi di tutte le proprietà e i metodi RegExp.