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] 
}
Задание 1

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).