JavaScript тұрақты өрнектеріндегі exec әдісі

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';

Оның ішінде уақыт бар барлық жолшаларды тауып, әрбір табылған үшін сағаттарды, минуттарды және секундтарды карманалар бойынша жіктеңіз.