Metoda exec
Metoda exec realizează căutarea într-un
șir de caractere folosind expresia regulată dată. Rezultatul returnat este subșirul
găsit și grupurile sale de captură. În plus,
fiecare apel ulterior al acestei metode
va începe căutarea din poziția în care
s-a terminat subșirul găsit anterior.
Dacă nu se găsește nicio potrivire
- se returnează null.
Sintaxa
expresia_regulata.exec(șir);
Exemplu
Să verificăm funcționarea metodei:
let 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);
Rezultatul executării codului:
[12]
[34]
[56]
null
Exemplu
Să folosim metoda într-o buclă:
let str = '12 34 56';
let reg = /\d+/g;
let res;
while (res = reg.exec(str)) {
console.log(res);
}
Rezultatul executării codului:
[12]
[34]
[56]
Exemplu
Potrivirile găsite pot fi distribuite în grupurile de captură:
let str = '12 34 56';
let reg = /(\d)(\d)/g;
let res;
while (res = reg.exec(str)) {
console.log(res);
}
Rezultatul executării codului:
[12, 1, 2]
[34, 3, 4]
[56, 5, 6]
Exemplu
Folosind proprietatea lastIndex
se poate seta poziția de la care trebuie
să înceapă căutarea:
let 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);
Rezultatul executării codului:
[34]
[56]
Exemplu
Folosind modificatorul y
se poate fixa poziția
de începere a căutării:
let 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);
Rezultatul executării codului:
null
[12]
Vedeți și
-
metoda
test,
care verifică un șir de caractere -
metoda
match,
care caută potriviri într-un șir de caractere -
metoda
matchAll,
care caută toate potrivirile într-un șir de caractere -
metoda
replace,
care execută căutare și înlocuire -
metoda
search,
care execută căutare -
metoda
split,
care împarte un șir de caractere