Метод exec
Методът exec извършва търсене в
низ по зададен регулярен израз. Резултатът е намереният
подниз и неговите групи (capturing 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]
Пример
Намерените съвпадения могат да бъдат разложени в групи (capturing groups):
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]