exec-metodi
Metodi exec suorittaa haun
merkkijonossa annettua säännöllistä lauseketta vastaan. Tuloksena palautetaan löydetty
merkkijono ja sen sieppaukset. Samalla
jokainen metodin seuraava kutsu
aloittaa haun siitä kohdasta,
jossa edellinen
löydetty merkkijono päättyi. Jos osumaa
ei löydy - palautetaan null.
Syntaksi
säännöllinen_lauseke.test(merkkijono);
Esimerkki
Tarkastellaan metodin toimintaa:
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);
Koodin suorituksen tulos:
[12]
[34]
[56]
null
Esimerkki
Käytetään metodia silmukassa:
let str = '12 34 56';
let reg = /\d+/g;
let res;
while (res = reg.exec(str)) {
console.log(res);
}
Koodin suorituksen tulos:
[12]
[34]
[56]
Esimerkki
Löydetyt osumat voidaan jakaa sieppauksiin:
let str = '12 34 56';
let reg = /(\d)(\d)/g;
let res;
while (res = reg.exec(str)) {
console.log(res);
}
Koodin suorituksen tulos:
[12, 1, 2]
[34, 3, 4]
[56, 5, 6]
Esimerkki
Ominaisuudella lastIndex
voidaan asettaa sijainti, josta haun
tulisi alkaa:
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);
Koodin suorituksen tulos:
[34]
[56]
Esimerkki
Modifieroijalla y
voidaan kiinnittää haun alun
sijainti:
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);
Koodin suorituksen tulos:
null
[12]