How to replace all occurrences of a string in Javascript

I have pretty much resigned myself to the fact that in Javascript, there are really only two ways to do a proper search and replace.

Firstly, we need a base string to start manipulating, so let’s create our test subject:

var ourString = "This is a great string and we love it";

So now the options are as follows, replace, regular expression replace and split/join.

Javascript Replace

ourString.replace(" ", "-")

"This-is a great string and we love it"

As we can see with this method, it only replaces single occurrences in the string, which may be what you are trying to achieve, but it certainly wasn’t for this case!

Let’s try with a word now, it appears to work well, but that’s because we only had one occurrence yet again, so didn’t notice the problem!

ourString.replace("great", "amazing")

"This is a amazing string and we love it"

Javascript Regular Expression Replace

ourString.replace(/ /g, "-")


This works pretty well, because of the addition of the g flag, which means global, or “apply the condition in every matched occurrence.

This is the most recommended method and what I like to use personally.

Let’s try it with our previous “great” and “amazing” swap out:

ourString.replace(/great/g, "amazing")

"This is a amazing string and we love it"

As can be seen, we get the same output as our single occurrence example above. So this means we can use it for both single and multiple instance replacements/matching. Yet another reason to use it all the time!

While we’re looking into this, there is another option available to us, which I mentioned at the beginning of this post.

Javascript Split/Join

Another option you have available to you is that of the split and join combo.

ourString.split(" ").join("-")

Notify of
Inline Feedbacks
View all comments