RegExp.prototype.exec în JavaScript

Expresii regulate Toate browserele, Node.js

Caută următoarea potrivire a unei expresii regulate și o returnează cu grupuri și poziție.

Sintaxă
expresie.exec(sir)

Ce face RegExp.prototype.exec

exec returnează un tablou cu textul potrivit pe poziția 0 și grupurile pe pozițiile următoare, plus proprietățile index (poziția), input (textul) și groups (grupurile cu nume). Dacă nu găsește nimic, returnează null.

Cu indicatorul g, fiecare apel continuă de unde s-a oprit cel anterior, așa că poți parcurge toate potrivirile într-o buclă while. În cod nou, matchAll face același lucru mai simplu.

Parametri

Parametru Descriere
sir Textul în care se caută.

Ce returnează

Un tablou cu potrivirea sau null.

Exemple

Exemplul 1: O potrivire cu grupuri

const re = /(?<judet>[A-Z]{1,2}) (?<numar>\d{2,3}) (?<litere>[A-Z]{3})/;
const p = re.exec("Mașina are numărul IS 23 ABC.");

console.log(p[0]);
console.log(p.index);
console.log(p.groups.judet, p.groups.numar, p.groups.litere);

Rezultat

IS 23 ABC
19
IS 23 ABC

Exemplul 2: Toate potrivirile într-o buclă

const re = /#(\p{L}+)/gu;
const text = "Vacanță la #Sibiu și #Brașov, apoi #Constanța";
let p;

while ((p = re.exec(text)) !== null) {
  console.log(p[1], "la poziția", p.index);
}

Rezultat

Sibiu la poziția 11
Brașov la poziția 21
Constanța la poziția 35

Greșeli frecvente

  • Scrii bucla while cu o expresie fără g. exec găsește mereu aceeași primă potrivire, iar bucla nu se mai oprește.

Comenzi înrudite