JavaScript නිත්ය ප්රකාශනවල exec ක්රමය
exec ක්රමය නිත්ය ප්රකාශනය භාවිතයෙන්
තන්තුවක ගවේෂණය කරයි.
එහි ප්රතිඵලය ලෙස හමු වූ උපතන්තුව සහ
එහි කාපු (capturing) ගෝල ආපසු ලබා දෙයි.
මෙම ක්රමය සෑම ඊළඟ කාල ප්රකාශයකදීම
පෙර අවසන් වූ ස්ථානයේ සිට ගවේෂණය ආරම්භ කරයි.
අපි උදාහරණයක් බලමු. අපට පහත සඳහන් තන්තුව ඇතැයි සිතමු:
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';
එහි ඇති සියලුම කාල උපතන්තු සොයා ගන්න සෑම හමුවක් සඳහාම පැය, මිනිත්තු සහ තත්පර කාපු ගෝලවලට වෙන් කරන්න.