Metoden exec
Metoden exec utför sökning i
en sträng med ett givet reguljärt uttryck. Resultatet är den hittade
delen av strä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
hittade delsträngen slutade. Om ingen matchning
hittas returneras null.
Syntax
javascriptreguljärt_uttryck.test(sträng);
Exempel
Låt oss testa metoden:
javascriptlet str = '12 34 56';
let reg = /\d+/g;
let res1 = reg.exec(str);
console.log(res1);
let res2 = reg.exec(str);
console.log(res2);
let res3 = reg.exec(str);
console.log(res3);
let res4 = reg.exec(str);
console.log(res4);
Resultat av kodkörning:
javascript[12]
[34]
[56]
null
Exempel
Låt oss använda metoden i en loop:
javascriptlet str = '12 34 56';
let reg = /\d+/g;
let res;
while (res = reg.exec(str)) {
console.log(res);
}
Resultat av kodkörning:
javascript[12]
[34]
[56]
Exempel
De hittade matchningarna kan delas upp i fångstgrupper:
javascriptlet str = '12 34 56';
let reg = /(\d)(\d)/g;
let res;
while (res = reg.exec(str)) {
console.log(res);
}
Resultat av kodkörning:
javascript[12, 1, 2]
[34, 3, 4]
[56, 5, 6]
Exempel
Med egenskapen lastIndex
kan man ange positionen från vilken
sökningen ska börja:
javascriptlet str = '12 34 56';
let reg = /\d+/g;
reg.lastIndex = 2;
let res1 = reg.exec(str)
console.log(res1);
let res2 = reg.exec(str)
console.log(res2);
Resultat av kodkörning:
javascript[34]
[56]
Exempel
Med modifieraren y
kan man låsa fast startpositionen
för sökningen:
javascriptlet str = '12 34 56';
let reg = /\d+/y;
reg.lastIndex = 2;
let res1 = reg.exec(str)
console.log(res1);
let res2 = reg.exec(str)
console.log(res2);
Resultat av kodkörning:
javascriptnull
[12]