Die exec-metode in JavaScript regex
Die metode exec voer 'n soektog op
'n string uit. Die resultaat is die gevonde
substring en sy groepe (capture groups). Elke
opvolgende oproep van hierdie metode
sal die soektog begin vanaf die plek
waar die vorige gevonde
substring geëindig het.
Kom ons kyk na 'n voorbeeld. Gestel ons het die volgende string:
let str = '12 34 56';
Gestel ons het die volgende reguliere uitdrukking:
let reg = /\d+/g;
Kom ons roep opeenvolgend ons metode vir ons string aan:
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
Na drie aanroepe, aangesien daar
geen meer ooreenstemmings met die regex in ons
string is nie, sal die volgende metode-aanroep
null teruggee:
let res4 = reg.exec(str);
console.log(res4); // null
Hierdie eienskap van die metode is gerieflik om in 'n lus te gebruik:
let str = '12 34 56';
let reg = /\d+/g;
let res;
while (res = reg.exec(str)) {
console.log(res); // [12], [34], [56]
}
Jy kan nie net die ooreenstemming vind nie, maar dit ook in groepe (capture groups) opsny:
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]
}
Gegee die volgende string:
let str = '12:37:57 15:48:58 17:59:59';
Vind al die substringe met tye daarin en verdeel vir elke gevonde een die ure, minute en sekondes in groepe (capture groups).