String. Prototype. replaceAll() Not Working [Duplicate]

I need to replace all the string in a variable.

var a = "::::::";
a = a.replace(":", "hi");
console.log(a);

The above code replaces only the first string i.e..hi:::::: I used replaceAll but it's not working.

0

Update: All recent versions of major browsers, as well as NodeJS 15+ now support replaceAll

Original:

There is no replaceAll in JavaScript: the error console was probably reporting an error.

Instead, use the /g ("match globally") modifier with a regular expression argument to replace:

const a = "::::::";
const replaced = a.replace(/:/g,"hi");
console.log(replaced);

The is covered in MDN: String.replace (and elsewhere).

11

There is no replaceAll function in JavaScript.

You can use a regex with a global identifier as shown in pst's answer:

a.replace(/:/g,"hi");

An alternative which some people prefer as it eliminates the need for regular expressions is to use JavaScript's split and join functions like so:

a.split(":").join("hi");

It is worth noting the second approach is however slower.

3
Sarah Jenkins

Sarah Jenkins

Senior Technology Editor & AI Specialist

Sarah Jenkins is a veteran tech journalist with over 12 years of experience covering artificial intelligence, mobile innovations, and digital ethics. Her insights have appeared in leading technology publications worldwide.

Share this article
Twitter Facebook Pinterest