JavaScript тұрақты өрнектеріндегі exec әдісі
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';
Оның ішінде уақыт бар барлық жолшаларды тауып, әрбір табылған үшін сағаттарды, минуттарды және секундтарды карманалар бойынша жіктеңіз.