Metod exec u regularnim izrazima JavaScript

Metod exec vrši pretragu po stringu. Kao rezultat se vraća pronađeni substring i njegove grupe (capture groups). Pri tome će svaki kasniji poziv ovog metoda započinjati pretragu od mesta na kome se završio prethodno pronađeni substring.

Pogledajmo na primeru. Neka imamo sledeći string:

javascriptlet str = '12 34 56';

Neka imamo sledeći regularni izraz:

javascriptlet reg = /\d+/g;

Hajde da sekvencijalno pozivamo naš metod za naš string:

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

Nakon tri poziva, kako u našem stringu više nema poklapanja sa regularnim izrazom, onda će sledeći poziv metoda vratiti null:

javascriptlet res4 = reg.exec(str);
console.log(res4); // null

Ova osobinu metoda je zgodno koristiti u petlji:

javascriptlet str = '12 34 56';
let reg = /\d+/g;

let res;
while (res = reg.exec(str)) {
  console.log(res); // [12], [34], [56] 
}

Možete pronaći ne samo poklapanje, već ga i rastaviti po grupama:

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

Dat je sledeći string:

javascriptlet str = '12:37:57 15:48:58 17:59:59';

Pronađite u njemu sve substringove sa vremenom i za svaki pronađeni rastavite sate, minute i sekunde po grupama.