Javascript – string replace all without Regex

Yan Cui

I help clients go faster for less using serverless technologies.

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?


 

Whenever you’re ready, here are 4 ways I can help you:

  1. If you want a one-stop shop to help you quickly level up your serverless skills, you should check out my Production-Ready Serverless workshop. Over 20 AWS Heroes & Community Builders have passed through this workshop, plus 1000+ students from the likes of AWS, LEGO, Booking, HBO and Siemens.
  2. If you want to learn how to test serverless applications without all the pain and hassle, you should check out my latest course, Testing Serverless Architectures.
  3. If you’re a manager or founder and want to help your team move faster and build better software, then check out my consulting services.
  4. If you just want to hang out, talk serverless, or ask for help, then you should join my FREE Community.

 


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 *