Kaedah exec dalam Ungkapan Biasa JavaScript

Kaedah exec menjalankan carian dalam tali. Hasilnya mengembalikan subrentetan yang ditemui dan kumpulannya (capturing groups). Setiap panggilan seterusnya bagi kaedah ini akan memulakan carian dari tempat di mana subrentetan yang ditemui sebelumnya berakhir.

Mari kita lihat contoh. Katakan kita mempunyai tali berikut:

javascriptlet str = '12 34 56';

Katakan kita mempunyai ungkapan biasa berikut:

javascriptlet reg = /\d+/g;

Mari kita panggil kaedah kita secara berurutan untuk tali 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

Selepas tiga panggilan, memandangkan dalam tali kita tiada lagi padanan dengan ungkapan biasa, panggilan seterusnya kaedah akan mengembalikan null:

javascriptlet res4 = reg.exec(str);
console.log(res4); // null

Ciri kaedah ini mudah digunakan dalam gelung:

javascriptlet str = '12 34 56';
let reg = /\d+/g;

let res;
while (res = reg.exec(str)) {
  console.log(res); // [12], [34], [56] 
}

Bukan sahaja padanan boleh ditemui, tetapi juga menguraikannya kepada kumpulan (capturing groups):

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

Diberi tali berikut:

javascriptlet str = '12:37:57 15:48:58 17:59:59';

Cari semua subrentetan dengan masa dan untuk setiap yang ditemui, uraikan jam, minit dan saat kepada kumpulan (capturing groups) yang berasingan.