Metoda exec v regularnih izrazih JavaScript
Metoda exec izvede iskanje po
nizu. Rezultat je najdena
podniz in njeni zajeti skupini (capturing groups). Pri tem
bo vsak naslednji klic te metode
začel iskanje od mesta,
kjer se je končala prejšnja
našena podniz.
Poglejmo si na primeru. Recimo, da imamo naslednji niz:
javascriptlet str = '12 34 56';
Recimo, da imamo naslednji regularni izraz:
javascriptlet reg = /\d+/g;
Zaporedoma kličimo našo metodo za naš niz:
javascriptlet res1 = reg.exec(str);
console.log(res1[0]); // 12
let res2 = reg.exec(str);
console.log(res2[0]); // 34
let res3 = reg.exec(str);
console.log(res3[0]); // 56
Po treh klicih, ker v našem
nizu ni več ujemanj z regularnim izrazom,
bo naslednji klic metode vrnil
null:
javascriptlet res4 = reg.exec(str);
console.log(res4); // null
To lastnost metode je priročno uporabiti v zanki:
javascriptlet str = '12 34 56';
let reg = /\d+/g;
let res;
while (res = reg.exec(str)) {
console.log(res); // [12], [34], [56]
}
Najti je mogoče ne le ujemanje, ampak ga tudi razstaviti na zajete skupine (capturing groups):
javascriptlet str = '12 34 56';
let reg = /(\d)(\d)/g;
let res;
while (res = reg.exec(str)) {
console.log(res); // [12, 1, 2], [34, 3, 4], [56, 5, 6]
}
Podan je naslednji niz:
javascriptlet str = '12:37:57 15:48:58 17:59:59';
Poiščite v njem vse podnize s časom in za vsakega najdenega razstavite ure, minute in sekunde v zajete skupine (capturing groups).