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:
let str = '12 34 56';
Misalkan kita memiliki ekspresi reguler berikut:
let reg = /\d+/g;
Mari kita panggil metode kita secara berurutan untuk string kita:
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
Setelah tiga panggilan, karena dalam
string kita tidak ada lagi kecocokan dengan regex,
pemanggilan metode berikutnya akan mengembalikan
null:
let res4 = reg.exec(str);
console.log(res4); // null
Fitur metode ini mudah digunakan dalam sebuah loop:
let 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:
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]
}
Diberikan string berikut:
let 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.