Metoden exec i regulære uttrykk i JavaScript
Metoden exec utfører et søk i en
streng. Resultatet returnerer den funnet
delen av strengen og dens "capture groups" (fangstgrupper). Hver
etterfølgende kall til denne metoden
vil starte søket fra det stedet
der den forrige funnet
delen av strengen sluttet.
La oss se på et eksempel. Anta at vi har følgende streng:
javascriptlet str = '12 34 56';
Anta at vi har følgende regulære uttrykk:
javascriptlet reg = /\d+/g;
La oss sekvensielt kalle vår metode for vår streng:
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
Etter tre kall, siden det i vår
streng ikke er flere treff med det regulære uttrykket,
vil neste kall til metoden returnere
null:
javascriptlet res4 = reg.exec(str);
console.log(res4); // null
Denne egenskapen til metoden er praktisk å bruke i en løkke:
javascriptlet str = '12 34 56';
let reg = /\d+/g;
let res;
while (res = reg.exec(str)) {
console.log(res); // [12], [34], [56]
}
Man kan finne ikke bare treffet, men også dele det opp i "capture groups" (fangstgrupper):
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]
}
Følgende streng er gitt:
javascriptlet str = '12:37:57 15:48:58 17:59:59';
Finn alle delstrenger med klokkeslett i den og for hvert funnet, del opp timer, minutter og sekunder i "capture groups" (fangstgrupper).