Instead of using replaceAll
, it is better to use replace
.
But why? Doesn’t replace
just replace the first character/sentence it finds?
The context of our discussion this time is replace & replaceAll which is a built-in function/method for String in JavaScript.
First, let’s see how to use it
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,
});
Above code will have output message like
(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
don’t change the value, it returns the changed value.Therefore we have to accommodate the changes into a new variable.
-
replaceAll
changes all findings, whereasreplace
changes only the first finding.
Problem
Then why? The problem is in compatibility
The problem that may occur is Runtime Error on some older devices/browsers.
Especially for friends who develop webview apps, this needs to be a concern.
Solution
Use replace
.
If you want to replace all findings, use Regular Expression with replace
, as follows
const kalimatReplacedNew = kalimat.replace(/Kita/g, "Saya");
console.log(kalimatReplacedNew); // 'Saya akan membuka toko. Saya akan menjual kebab'
Okay thanks.