Metodas exec reguliariose išraiškose JavaScript

Metodas exec atlieka paiešką eilutėje. Rezultatas grąžinamas kaip rasta paieštaka ir jos perėmimo grupės. Kiekvienas vėlesnis šio metodo iškvietimas pradės paiešką nuo tos vietos, kurioje buvo sustota radus ankstesnę paieštaką.

Pažiūrėkime pavyzdžiu. Tarkime, kad turime šią eilutę:

javascriptlet str = '12 34 56';

Tarkime, kad turime šią reguliariąją išraišką:

javascriptlet reg = /\d+/g;

Iškvieskime nuosekliai mūsų metodą mūsų eilutei:

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 trijų iškvietimų, kadangi mūsų eilutėje daugiau nėra atitikimų su reguliaria išraiška, tai sekantis metodo iškvietimas grąžins null:

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

Šią metodo ypatybę patogu naudoti cikle:

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

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

Galima rasti ne tik atitikimą, bet ir išskaidyti jį į perėmimo grupes:

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

Duota ši eilutė:

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

Suraskite joje visas paieštakas su laiku ir kiekvienai rastai išskaidykite valandas, minutes ir sekundes į perėmimo grupes.