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]
}
Келесі жол берілген:
javascriptlet str = '12:37:57 15:48:58 17:59:59';
Оның ішінде уақыт бар барлық жолшаларды тауып, әрбір табылған үшін сағаттарды, минуттарды және секундтарды карманалар бойынша жіктеңіз.