Методи exec дар регулярҳои JavaScript
Методи 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';
Дар он ҳама зерсатрҳоро бо вақт ёбед ва барои ҳар яки дарёфтшуда соатҳо, дақиқаҳо ва сонияҳоро ба «карман»-ҳо ҷудо кунед.