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:
let str = '12 34 56';
Anta at vi har følgende regulære uttrykk:
let reg = /\d+/g;
La oss sekvensielt kalle vår metode for vår streng:
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
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:
let res4 = reg.exec(str);
console.log(res4); // null
Denne egenskapen til metoden er praktisk å bruke i en løkke:
let 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):
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]
}
Følgende streng er gitt:
let 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).