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:
javascriptlet str = '12 34 56';
Olgu meil järgmine regulaaravaldis:
javascriptlet reg = /\d+/g;
Kutsume järjest meetodit meie stringi jaoks:
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
Pärast kolme kutset, kuna meie
stringis pole enam vastavusi regulaaravaldisega,
siis järgmine meetodi kutse tagastab
null:
javascriptlet res4 = reg.exec(str);
console.log(res4); // null
Sellist meetodi omadust on mugav kasutada tsüklis:
javascriptlet 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):
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]
}
Antud on järgmine string:
javascriptlet 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).