Метод exec
Метод exec врши претрагу
низа по задатом регуларном изразу. Резултат је пронађени
подниз и његове capture groups (кармани). При томе сваки
следећи позив овог метода
ће започети претрагу са места
на ком је претходни
пронађени подниз завршио. Ако се поклапање
не пронађе - враћа се null.
Синтакса
регуларни_израз.test(низ);
Пример
Проверимо рад методе:
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);
Резултат извршавања кода:
[12]
[34]
[56]
null
Пример
Искористимо метод у петљи:
let str = '12 34 56';
let reg = /\d+/g;
let res;
while (res = reg.exec(str)) {
console.log(res);
}
Резултат извршавања кода:
[12]
[34]
[56]
Пример
Пронађена поклапања се могу распоредити по карманима:
let str = '12 34 56';
let reg = /(\d)(\d)/g;
let res;
while (res = reg.exec(str)) {
console.log(res);
}
Резултат извршавања кода:
[12, 1, 2]
[34, 3, 4]
[56, 5, 6]
Пример
Помоћу својства lastIndex
може се задати позиција од које треба
започети претрагу:
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);
Резултат извршавања кода:
[34]
[56]
Пример
Помоћу модификатора y
може се фиксирати позиција
почетка претраге:
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);
Резултат извршавања кода:
null
[12]