Metodo exec() dell'RegExp JavaScript

Definizione e uso

exec() Il metodo testa i corrispondenti nella stringa.

Questo metodo è un modello di match universale.

Se viene trovato un corrispondente, viene restituito l'array dei risultati, altrimenti viene restituito null.

Esempio

Esempio 1

Cerca il carattere "e" nella stringa:

let text = "The best things in life are free";
let result = /e/.exec(text);

Prova tu stesso

Esempio 2

Cerca "Hello" e "W3School" in modo globale nella stringa:

let text = "Hello world!";
// Cerca "Hello"
let result1 = /Hello/.exec(text);
// Cerca "W3School"
let result2 = /W3School/.exec(text);

Prova tu stesso

Sintassi

regexp.exec(dalla posizione del carattere specificato dall'attributo lastIndex della proprietà)

Parametro

Parametro Descrizione
dalla posizione del carattere specificato dall'attributo lastIndex della proprietà Obbligatorio. La stringa da cercare.

Valore di ritorno

Tipo Descrizione
Array Se viene trovata una corrispondenza, l'array contiene il testo corrispondente, altrimenti viene restituito null.

Dettagli tecnici

Valore di ritorno

Array, che contiene i risultati della corrispondenza. Se non viene trovata alcuna corrispondenza, il valore è null. Di seguito è descritta la struttura dell'array di ritorno.

lancia

Tipo Descrizione
TypeError L'oggetto che chiama questo metodo non è RegExp, viene lanciata questa eccezione.

Spiegazione

in tutti i metodi di match RegExp e String pattern match method,exec() è la funzione più potente. È un metodo universale, più facile da usare rispetto a RegExp.test(),String.replace() e String.match() è complesso.

exec() cercherà la stringa dalla posizione del carattere specificato dall'attributo lastIndex della proprietà, da cui ottenere il pattern regolare regexp testo corrispondente. Se exec() Trovato il testo corrispondente, verrà restituito un array di risultati. Altrimenti, viene restituito nullQuesto è l'elemento 0 dell'array di ritorno che corrisponde al testo dell'espressione. Il primo elemento è il testo che corrisponde a regexp il testo che corrisponde al primo sottoespressione (se esiste). Il secondo elemento è il testo che corrisponde alla regexp del primo sottoespressione che corrisponde (se esiste). Il secondo elemento è il testo che corrisponde allaexec() del secondo sottoespressione che corrisponde, ecc. Di solito, l'attributo length dell'array dichiara il numero di elementi dell'array. Oltre agli elementi dell'array e all'attributo length, dalla posizione del carattere specificato dall'attributo lastIndex della proprietàrestituisce anche due proprietà. L'attributo index dichiara la posizione del primo carattere del testo di corrispondenza. L'attributo input indica exec() . Inoltre, quando chiama l'oggetto RegExp non globale String.match() metodo, l'array restituito è lo stesso del metodo chiamato

i metodi restituiti sono gli stessi. exec() chiama un metodo di modello non globale regexp metodo, esegue la ricerca e restituisce i risultati menzionati. Tuttavia, quandoexec() è un'espressione regolare globale regexp comportamento è un po' più complesso. Quando dalla posizione del carattere specificato dall'attributo lastIndex della proprietà string regexp impostare l'attributo lastIndex della proprietà exec() Metodo per esplorare tutti i testi di corrispondenza nella stringa. Quando exec() non può trovare più testi di corrispondenza, restituirà nulle resetta l'attributo lastIndex a 0. Se si desidera iniziare a cercare un nuovo stringa dopo aver completato una corrispondenza di modello in un'altra stringa, è necessario manualmente reimpostare l'attributo lastIndex a 0.

Attenzione, indipendentemente regexp se è in modalità globaleexec() aggiunge tutti i dettagli al array restituito. Questo è exec() e String.match() differisce, poiché l'ultimo restituisce molto meno informazioni in modalità globale. Infatti, chiamare ripetutamente exec() Il metodo è l'unico modo per ottenere tutte le informazioni di corrispondenza del modello globale.

Supporto del browser

exec() È una caratteristica ECMAScript1 (ES1).

Tutti i browser supportano completamente ES1 (JavaScript 1997):

Chrome IE Edge Firefox Safari Opera
Supporta Supporta Supporta Supporta Supporta Supporta

Metodi di ricerca con espressioni regolari

In JavaScript, la ricerca di testo con espressioni regolari può essere completata con diversi metodi.

UsoModello (pattern)Come espressione regolare, questi sono i metodi più comuni:

Esempio Descrizione
text.match(Modello) Metodo match() della stringa
text.search(Modello) Metodo search() della stringa
Modello.exec(text) Metodo RexExp exec()
Modello.test(text) Metodo RexExp test()