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ę:
let str = '12 34 56';
Tarkime, kad turime šią reguliariąją išraišką:
let reg = /\d+/g;
Iškvieskime nuosekliai mūsų metodą mūsų eilutei:
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 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:
let res4 = reg.exec(str);
console.log(res4); // null
Šią metodo ypatybę patogu naudoti cikle:
let 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:
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]
}
Duota ši eilutė:
let 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.