जावास्क्रिप्ट रेगुलर एक्सप्रेशन में 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';
इसमें समय वाली सभी सबस्ट्रिंग्स ढूंढें और हर मिलने वाले के लिए घंटे, मिनट और सेकंड को ग्रुप्स (कारम्स) में अलग करें।