Il metodo exec

Il metodo exec esegue una ricerca in una stringa secondo una espressione regolare specificata. Il risultato restituito è la sottostringa trovata e i suoi gruppi (catture). Inoltre, ogni chiamata successiva di questo metodo inizierà la ricerca dal punto in cui è terminata la precedente sottostringa trovata. Se non viene trovata una corrispondenza viene restituito null.

Sintassi

javascriptespressione_regolare.test(stringa);

Esempio

Verifichiamo il funzionamento del metodo:

javascriptlet str = '12 34 56';
let reg = /\d+/g;

let res1 = reg.exec(str);
console.log(res1);

let res2 = reg.exec(str);
console.log(res2);

let res3 = reg.exec(str);
console.log(res3);

let res4 = reg.exec(str);
console.log(res4);

Risultato dell'esecuzione del codice:

javascript[12]
[34]
[56]
null

Esempio

Utilizziamo il metodo in un ciclo:

javascriptlet str = '12 34 56';
let reg = /\d+/g;

let res;
while (res = reg.exec(str)) {
  console.log(res);
}

Risultato dell'esecuzione del codice:

javascript[12]
[34]
[56] 

Esempio

Le corrispondenze trovate possono essere scomposte nei gruppi (catture):

javascriptlet str = '12 34 56';
let reg = /(\d)(\d)/g;

let res;
while (res = reg.exec(str)) {
  console.log(res);
}

Risultato dell'esecuzione del codice:

javascript[12, 1, 2]
[34, 3, 4]
[56, 5, 6] 

Esempio

Tramite la proprietà lastIndex è possibile impostare la posizione da cui iniziare la ricerca:

javascriptlet str = '12 34 56';

let reg = /\d+/g;
reg.lastIndex = 2;

let res1 = reg.exec(str)
console.log(res1);

let res2 = reg.exec(str)
console.log(res2);

Risultato dell'esecuzione del codice:

javascript[34]
[56]

Esempio

Tramite il modificatore y è possibile fissare la posizione d'inizio della ricerca:

javascriptlet str = '12 34 56';

let reg = /\d+/y;
reg.lastIndex = 2;

let res1 = reg.exec(str)
console.log(res1);

let res2 = reg.exec(str)
console.log(res2);

Risultato dell'esecuzione del codice:

javascriptnull
[12]

Vedi anche

  • il metodo test,
    che verifica una stringa
  • il metodo match,
    che cerca corrispondenze in una stringa
  • il metodo matchAll,
    che cerca tutte le corrispondenze in una stringa
  • il metodo replace,
    che esegue ricerca e sostituzione
  • il metodo search,
    che esegue una ricerca
  • il metodo split,
    che divide una stringa