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

javascriptsäännöllinen_lauseke.test(merkkijono);

Esimerkki

Tarkastellaan metodin toimintaa:

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);

Koodin suorituksen tulos:

javascript[12]
[34]
[56]
null

Esimerkki

Käytetään metodia silmukassa:

javascriptlet str = '12 34 56';
let reg = /\d+/g;

let res;
while (res = reg.exec(str)) {
  console.log(res);
}

Koodin suorituksen tulos:

javascript[12]
[34]
[56] 

Esimerkki

Löydetyt osumat voidaan jakaa sieppauksiin:

javascriptlet str = '12 34 56';
let reg = /(\d)(\d)/g;

let res;
while (res = reg.exec(str)) {
  console.log(res);
}

Koodin suorituksen tulos:

javascript[12, 1, 2]
[34, 3, 4]
[56, 5, 6] 

Esimerkki

Ominaisuudella lastIndex voidaan asettaa sijainti, josta haun tulisi alkaa:

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);

Koodin suorituksen tulos:

javascript[34]
[56]

Esimerkki

Modifieroijalla y voidaan kiinnittää haun alun sijainti:

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);

Koodin suorituksen tulos:

javascriptnull
[12]

Katso myös

  • metodi test,
    joka tarkistaa merkkijonon
  • metodi match,
    joka etsii osumia merkkijonosta
  • metodi matchAll,
    joka etsii kaikki osumat merkkijonosta
  • metodi replace,
    joka suorittaa haun ja korvauksen
  • metodi search,
    joka suorittaa haun
  • metodi split,
    joka jakaa merkkijonon