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] 
}
Задание 1

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.