Daripada menggunakan replaceAll, lebih baik menggunakan replace.
Tetapi kenapa? Bukankah replace hanya mengganti karakter/kalimat pertama yang ditemukan?
Konteks bahasan kita kali ini adalah replace & replaceAll yang merupakan built-in function/method untuk String di bahasa JavaScript.
Sebelumnya mari lihat penggunaanya
const kalimat = "Kita akan membuka toko. Kita akan menjual kebab";
// replaceAll
const kalimatReplacedAll = kalimat.replaceAll("Kita", "Saya");
// replace
const kalimatReplaced = kalimat.replace("Kita", "Saya");
console.table({
kalimat,
kalimatReplacedAll,
kalimatReplaced,
});
Kode di atas akan mengeluarkan pesan berikut
| (index) | Value |
|---|---|
| kalimat | ‘Kita akan membuka toko. Kita akan menjual kebab’ |
| kalimatReplacedAll | ‘Saya akan membuka toko. Saya akan menjual kebab’ |
| kalimatReplaced | ‘Saya akan membuka toko. Kita akan menjual kebab’ |
-
replace&replaceAlltidak mengubah nilai, melainkan mengembalikan perubahan nilai.Karenanya kita harus menampung perubahan ke dalam variable baru.
-
replaceAllmengubah semua temuan, sedangkanreplacehanya mengubah temuan pertama.
Masalah
Lantas kenapa? Masalahnya ada pada compatibilitas
Adapun masalah yang mungkin terjadi adalah Runtime Error pada beberapa device/browser lama.
Khususunya bagi teman-teman yang develop webview app, ini perlu jadi perhatian.
Solusi
Gunakan replace.
Bila ingin mengganti semua temuan, gunakan Regular Expression dengan replace, seperti berikut
const kalimatReplacedNew = kalimat.replace(/Kita/g, "Saya");
console.log(kalimatReplacedNew); // 'Saya akan membuka toko. Saya akan menjual kebab'
Okay terima kasih.