Exec metodas

Metodas exec atlieka paiešką eilutėje pagal nurodytą reguliarųjį reiškinį. Rezultatas grąžinamas kaip rasta subeilutė ir jos grupės. Tuo pačiu kiekvienas sekantis šio metodo iškvietimas pradės paiešką iš tos vietos, kurioje baigėsi ankstesnė rasta subeilutė. Jei atitikmuo nerastas - grąžinamas null.

Sintaksė

javascriptreguliarus_reiškinys.test(eilutė);

Pavyzdys

Patikrinkime metodo veikimą:

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

Kodo vykdymo rezultatas:

javascript[12]
[34]
[56]
null

Pavyzdys

Naudokime metodą cikle:

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

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

Kodo vykdymo rezultatas:

javascript[12]
[34]
[56] 

Pavyzdys

Rastus atitikmenis galima išskirstyti į grupes:

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

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

Kodo vykdymo rezultatas:

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

Pavyzdys

Naudojant savybę lastIndex galima nustatyti poziciją, nuo kurios reikia pradėti paiešką:

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

Kodo vykdymo rezultatas:

javascript[34]
[56]

Pavyzdys

Naudojant modifikatorių y galima užfiksuoti paieškos pradžios poziciją:

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

Kodo vykdymo rezultatas:

javascriptnull
[12]

Taip pat žiūrėkite

  • metodas test,
    kuris tikrina eilutę
  • metodas match,
    kuris ieško atitikmenų eilutėje
  • metodas matchAll,
    kuris ieško visų atitikmenų eilutėje
  • metodas replace,
    kuris atlieka paiešką ir pakeitimą
  • metodas search,
    kuris atlieka paiešką
  • metodas split,
    kuris skaido eilutę