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:
let str = '12 34 56';
Recimo, da imamo naslednji regularni izraz:
let reg = /\d+/g;
Zaporedoma kličimo našo metodo za naš niz:
let 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:
let res4 = reg.exec(str);
console.log(res4); // null
To lastnost metode je priročno uporabiti v zanki:
let 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):
let 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:
let 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).