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]