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:
let str = '12 34 56';
Katakan kita mempunyai ungkapan biasa berikut:
let reg = /\d+/g;
Mari kita panggil kaedah kita secara berurutan untuk tali 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
Selepas tiga panggilan, memandangkan dalam
tali kita tiada lagi padanan dengan ungkapan biasa,
panggilan seterusnya kaedah akan mengembalikan
null:
let res4 = reg.exec(str);
console.log(res4); // null
Ciri kaedah ini mudah digunakan dalam gelung:
let 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):
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]
}
Diberi tali berikut:
let 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.