Методот exec во регуларните изрази во JavaScript

Методот exec врши пребарување во низа. Како резултат се враќа пронајдениот подстринг и неговите групи (кармани). Притоа, секој следен повик на овој метод ќе го започне пребарувањето од местото каде што заврши претходниот пронајден подстринг.

Да погледнеме на пример. Нека имаме следнава низа:

javascriptlet str = '12 34 56';

Нека имаме следното регуларен израз:

javascriptlet reg = /\d+/g;

Ајде да го повикуваме последователно нашиот метод за нашата низа:

javascriptlet 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:

javascriptlet res4 = reg.exec(str);
console.log(res4); // null

Оваа особеност на методот е погодна за употреба во циклус:

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

let res;
while (res = reg.exec(str)) {
  console.log(res); // [12], [34], [56] 
}

Може да се најде не само совпаѓањето, туку и да се распореди по групи (кармани):

javascriptlet 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] 
}
Задание 1

Дадена е следнава низа:

javascriptlet str = '12:37:57 15:48:58 17:59:59';

Пронајдете ги во неја сите поднизи со време и за секоја пронајдена, распоредете ги часовите, минутите и секундите по групи (кармани).