Метод 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';
Пронађите у њој све подстрингове са временом и за сваки пронађени расподелите сате, минуте и секунде по групама (карманима).