Metode exec dalam Regex JavaScript
Metode exec melakukan pencarian pada
sebuah string. Hasilnya mengembalikan substring
yang ditemukan dan kelompok tangkapannya (capturing groups).
Setiap pemanggilan metode ini secara berurutan
akan memulai pencarian dari posisi
di mana substring yang ditemukan sebelumnya
berakhir.
Mari kita lihat sebuah contoh. Misalkan kita memiliki string berikut:
javascriptlet str = '12 34 56';
Misalkan kita memiliki ekspresi reguler berikut:
javascriptlet reg = /\d+/g;
Mari kita panggil metode kita secara berurutan untuk string kita:
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
Setelah tiga panggilan, karena dalam
string kita tidak ada lagi kecocokan dengan regex,
pemanggilan metode berikutnya akan mengembalikan
null:
javascriptlet res4 = reg.exec(str);
console.log(res4); // null
Fitur metode ini mudah digunakan dalam sebuah loop:
javascriptlet str = '12 34 56';
let reg = /\d+/g;
let res;
while (res = reg.exec(str)) {
console.log(res); // [12], [34], [56]
}
Tidak hanya kecocokan yang dapat ditemukan, tetapi juga dapat diurai ke dalam kelompok tangkapan:
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]
}
Diberikan string berikut:
javascriptlet str = '12:37:57 15:48:58 17:59:59';
Temukan semua substring yang berisi waktu dan untuk setiap yang ditemukan, uraikan jam, menit, dan detik ke dalam kelompok tangkapan yang terpisah.