I've started building out our JavaScript Glossary and when I got to the replace() method, I had to build out a snippet to handle replacing all occurrences of a string in a string.

Only Replaces One

Replaces All with literal regular expression

Normally String replace() only replaces the first instance it finds. If we want JavaScript to replace all, we'll have to use a regular expression using /g .

Using RegExp()

In addition to using the inline /g , we can use the constructor function of the RegExp object.

myMessage.replace(new RegExp('sentence', 'g'), 'message');

Replacing Special Characters

To replace special characters like -/\^$*+?.()|[]{}) we'll need to use a \ backslash to escape them.

Here we'll replace all the - in this string with just -. I ran into this when building out the Scotch dashboard with markdown trying to escape all my symbols.

// replace - with -
myUrl.replace(/-/g, '-');

// or with RegExp
myUrl.replace(new RegExp('-', 'g'), '-');