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
&replaceAll
tidak mengubah nilai, melainkan mengembalikan perubahan nilai.Karenanya kita harus menampung perubahan ke dalam variable baru.
-
replaceAll
mengubah semua temuan, sedangkanreplace
hanya 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.