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]
}
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.