Javascript – string replace all without Regex

I have been working with Node.js and Serverless heavily. It’s the first time I’ve really spent serious amount of time in Javascript, and I’m making plenty of beginner mistakes and learning lots.

One peculiar thing I find in Javascript is that String.replace only replaces the first instance of the substring, unless you use a Regex. Fortunately I found a clever little pattern to do this without Regex : String.split(subString).join(replaceString).

So suppose you want to remove the hyphen (-) in an AWS region name, you could write:

let region = ‘eu-west-1’;

let regionNoHyphen = region.split(‘-‘).join(”);

Much easier than using Regex, wouldn’t you agree?


Learn to build Production-Ready Serverless applications

Want to learn how to build Serverless applications and follow best practices? Subscribe to my newsletter and join over 4,000 AWS & Serverless enthusiasts who have signed up already.

3 thoughts on “Javascript – string replace all without Regex”

  1. I think once you get used to Regex in JS it isn’t too bad.

    "y-e-p".replace(/-/g,"") // => yep

  2. Yeah, regex is great… if you want to replace a known substring. Now try writing a replaceall function which must be able to replace all possible substrings with another, regardless of the contents of that substring! Now you first have to escape your replace string, and then make sure your escape is correct, and then that it remains correct with later “improvements” to the JS’s regex specification…

    You had a problem. You solved it with a regex. Now you have two problems.

    The function in the article works for all strings, and doesn’t give you any headaches.

Leave a Comment

Your email address will not be published. Required fields are marked *