JavaScript'te Düzenli İfadelerde exec Metodu
exec metodu, bir dize içinde arama yapar.
Sonuç olarak, bulunan alt dize ve onun grupları (capturing groups) döndürülür.
Bu metodun her bir sonraki çağrısı,
bir önceki bulunan alt dizinin bittiği yerden
aramaya başlayacaktır.
Bir örnek üzerinde inceleyelim. Şu dizimiz olduğunu varsayalım:
javascriptlet str = '12 34 56';
Şu düzenli ifademiz olduğunu varsayalım:
javascriptlet reg = /\d+/g;
Metodumuzu dizimiz için sırayla çağıralım:
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
Üç çağrıdan sonra, dizimizde düzenli ifadeyle
eşleşme kalmadığı için, metodun bir sonraki
çağrısı null döndürecektir:
javascriptlet res4 = reg.exec(str);
console.log(res4); // null
Metodun bu özelliğini bir döngü içinde kullanmak uygundur:
javascriptlet str = '12 34 56';
let reg = /\d+/g;
let res;
while (res = reg.exec(str)) {
console.log(res); // [12], [34], [56]
}
Sadece eşleşmeyi bulmakla kalmayıp, onu gruplara da ayırabiliriz:
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]
}
Şu dize verilmiştir:
javascriptlet str = '12:37:57 15:48:58 17:59:59';
İçindeki tüm zaman alt dizilerini bulun ve her bulunan için saat, dakika ve saniyeleri gruplara ayırın.