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';
Унда вақт билан изланадиган барча сатр қисмларини топинг ва ҳар бир топилган учун соат, минут ва сонияларни "карман"ларга ажратинг.