Metoden exec i JavaScripts reguljära uttryck
Metoden exec utför en sökning i en
sträng. Resultatet är den matchade
delsträngen och dess fångstgrupper. Varje
efterföljande anrop av denna metod
kommer att börja sökningen från den plats
där den föregående matchade
delsträngen slutade.
Låt oss titta på ett exempel. Antag att vi har följande sträng:
let str = '12 34 56';
Antag att vi har följande reguljära uttryck:
let reg = /\d+/g;
Låt oss sekventiellt anropa vår metod för vår sträng:
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
Efter tre anrop, eftersom det i vår
sträng inte finns fler träffar med regexet,
kommer nästa anrop av metoden att returnera
null:
let res4 = reg.exec(str);
console.log(res4); // null
Denna egenskap hos metoden är praktisk att använda i en loop:
let str = '12 34 56';
let reg = /\d+/g;
let res;
while (res = reg.exec(str)) {
console.log(res); // [12], [34], [56]
}
Man kan inte bara hitta matchningen, utan också dela upp den i fångstgrupper:
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öljande sträng är given:
let str = '12:37:57 15:48:58 17:59:59';
Hitta alla delsträngar med tid i den och för varje hittad, dela upp timmar, minuter och sekunder i fångstgrupper.