Metod exec
Metod exec izvršava pretragu po
stringu pomoću datog regularnog izraza. Rezultat je pronađeni
substring i njegove grupe (capture groups). Pri tome će svaki
sledeći poziv ovog metoda
započeti pretragu od mesta
gde se završio prethodno
pronađeni substring. Ako podudaranje
nije pronađeno - vraća se null.
Sintaksa
regularni_izraz.test(string);
Primer
Proverimo rad metoda:
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);
Rezultat izvršavanja koda:
[12]
[34]
[56]
null
Primer
Iskoristimo metod u petlji:
let str = '12 34 56';
let reg = /\d+/g;
let res;
while (res = reg.exec(str)) {
console.log(res);
}
Rezultat izvršavanja koda:
[12]
[34]
[56]
Primer
Pronađena podudaranja možemo raslojiti po grupama (pocketima):
let str = '12 34 56';
let reg = /(\d)(\d)/g;
let res;
while (res = reg.exec(str)) {
console.log(res);
}
Rezultat izvršavanja koda:
[12, 1, 2]
[34, 3, 4]
[56, 5, 6]
Primer
Pomoću svojstva lastIndex
možemo postaviti poziciju sa koje treba
započeti pretragu:
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);
Rezultat izvršavanja koda:
[34]
[56]
Primer
Pomoću modifikatora y
možemo fiksirati poziciju
početka pretrage:
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);
Rezultat izvršavanja koda:
null
[12]