Методот exec во регуларните изрази во JavaScript
Методот exec врши пребарување во
низа. Како резултат се враќа пронајдениот
подстринг и неговите групи (кармани). Притоа, секој
следен повик на овој метод
ќе го започне пребарувањето од местото
каде што заврши претходниот
пронајден подстринг.
Да погледнеме на пример. Нека имаме следнава низа:
let str = '12 34 56';
Нека имаме следното регуларен израз:
let reg = /\d+/g;
Ајде да го повикуваме последователно нашиот метод за нашата низа:
let res1 = reg.exec(str);
console.log(res1[0]); // 12
let res2 = reg.exec(str);
console.log(res2[0]); // 34
let res3 = reg.exec(str);
console.log(res3[0]); // 56
По три повици, бидејќи во нашата
низа нема повеќе совпаѓања со регуларниот израз,
следниот повик на методот ќе врати
null:
let res4 = reg.exec(str);
console.log(res4); // 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]
}
Дадена е следнава низа:
let str = '12:37:57 15:48:58 17:59:59';
Пронајдете ги во неја сите поднизи со време и за секоја пронајдена, распоредете ги часовите, минутите и секундите по групи (кармани).