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';
Анда убакыт бар бардык подсаптарды таап, ар бир табылга үчүн сааттарды, мүнөттөрдү жана секунддарды кармандарга жармаштырыңыз.