Metode exec JavaScript regulārajās izteiksmēs
Metode exec veic meklēšanu
virknē. Tās rezultāts atgriež atrasto
apakšvirkni un tās capture groups (kabatas).
Turklāt katra nākamā šīs metodes izsaukšana
sāks meklēšanu no tās vietas,
kurā beidzās iepriekšējā
atrastā apakšvirkne.
Apskatīsim piemērā. Pieņemsim, ka mums ir šāda virkne:
let str = '12 34 56';
Pieņemsim, ka mums ir šāda regulārā izteiksme:
let reg = /\d+/g;
Izsauksim mūsu metodi secīgi mūsu virknei:
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ēc trim izsaukumiem, tā kā mūsu
virknē vairs nav atbilstību ar regulāro izteiksmi,
tad nākamais metodes izsaukums atgriezīs
null:
let res4 = reg.exec(str);
console.log(res4); // null
Šo metodes īpatnību ir ērti izmantot ciklā:
let str = '12 34 56';
let reg = /\d+/g;
let res;
while (res = reg.exec(str)) {
console.log(res); // [12], [34], [56]
}
Var atrast ne tikai atbilstību, bet arī to sadalīt capture groups (kabatas):
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]
}
Dota šāda virkne:
let str = '12:37:57 15:48:58 17:59:59';
Atrast tajā visas apakšvirknes ar laiku un katrai atrastajai sadaliet stundas, minūtes un sekundes capture groups (kabatas).