Metoden exec
Metoden exec utfører søk i en
streng ved hjelp av et gitt regulært uttrykk. Resultatet som returneres er den funnete
delstrengen og dens capture groups. Hvert
påfølgende kall til denne metoden
vil starte søket fra det stedet
der den forrige funnete delstrengen
sluttet. Hvis ingen treff blir funnet - returneres null.
Syntaks
regulært_uttrykk.test(streng);
Eksempel
La oss sjekke hvordan metoden fungerer:
let 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);
Resultatet av kodekjøringen:
[12]
[34]
[56]
null
Eksempel
La oss bruke metoden i en løkke:
let str = '12 34 56';
let reg = /\d+/g;
let res;
while (res = reg.exec(str)) {
console.log(res);
}
Resultatet av kodekjøringen:
[12]
[34]
[56]
Eksempel
De funne match-ene kan dekomponeres i capture groups:
let str = '12 34 56';
let reg = /(\d)(\d)/g;
let res;
while (res = reg.exec(str)) {
console.log(res);
}
Resultatet av kodekjøringen:
[12, 1, 2]
[34, 3, 4]
[56, 5, 6]
Eksempel
Ved hjelp av egenskapen lastIndex
kan man angi posisjonen søket skal
starte fra:
let 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);
Resultatet av kodekjøringen:
[34]
[56]
Eksempel
Ved hjelp av modifikatoren y
kan man låse startposisjonen
for søket:
let 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);
Resultatet av kodekjøringen:
null
[12]