Meetod exec JavaScripti regulaaravaldistes
Meetod exec teostab otsingu
stringis. Tulemusena tagastatakse leitud
alamsõne ja selle grupid (pocket). Samas iga
järgnev selle meetodi kutsumine
alustab otsimist sellest kohast,
kus eelmine
leitud alamsõne lõppes.
Vaatame näidet. Olgu meil järgmine string:
let str = '12 34 56';
Olgu meil järgmine regulaaravaldis:
let reg = /\d+/g;
Kutsume järjest meetodit meie stringi jaoks:
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
Pärast kolme kutset, kuna meie
stringis pole enam vastavusi regulaaravaldisega,
siis järgmine meetodi kutse tagastab
null:
let res4 = reg.exec(str);
console.log(res4); // null
Sellist meetodi omadust on mugav kasutada tsüklis:
let str = '12 34 56';
let reg = /\d+/g;
let res;
while (res = reg.exec(str)) {
console.log(res); // [12], [34], [56]
}
Võib leida mitte ainult vastavuse, vaid ka jagada selle gruppidesse (pocket):
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]
}
Antud on järgmine string:
let str = '12:37:57 15:48:58 17:59:59';
Leidke sellest kõik alamsõned ajaga ja iga leitud puhul jagage tunnid, minutid ja sekundid gruppidesse (pocket).