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

Унда вақт билан изланадиган барча сатр қисмларини топинг ва ҳар бир топилган учун соат, минут ва сонияларни "карман"ларга ажратинг.