Replace all Numbers in a String using JavaScript

avatar

Borislav Hadzhiev

Wed Oct 13 20212 min read

banner

Photo by Cristy Zinn

Replace all Numbers in a String #

To replace all numbers in a string, call the replace() method, passing it a regular expression that globally matches all numbers as the first parameter and the replacement string as the second.

The replace method will return a new string with all matches replaced by the provided replacement.

index.js
const str = 'a1 b2 c3'; const replaced = str.replace(/[0-9]/g, '!'); console.log(replaced); // ๐Ÿ‘‰๏ธ a! b! c!

We pass the following parameters to the String.replace method:

  1. a regular expression we want to match in the string. In our case we want to match all numbers from 0-9
  2. a replacement string for each match

The brackets [] part of a regular expression is called a character class. In our character class we match all numbers in the range from 0-9.

We use the g (global) flag, because we want to match all occurrences of a number in the string and not just the first occurrence.

If you need help reading a regular expression, check out this regex cheatsheet from MDN. It's definitely the best one out there.

The replace method does not change the original string, it returns a new string with one or more matches replaced. Strings are immutable in JavaScript.

The example uses an exclamation mark as the replacement, however you could use whatever replacement string suits your use case, e.g. an underscore.

index.js
const str = 'a1 b2 c3'; const replaced = str.replace(/[0-9]/g, '_'); console.log(replaced); // ๐Ÿ‘‰๏ธ a_ b_ c_

An equivalent regular expression, is to use the \d special character.

index.js
const str = 'a1 b2 c3'; const replaced = str.replace(/\d/g, '!'); console.log(replaced); // ๐Ÿ‘‰๏ธ a! b! c!

The \d special character matches any digit 0-9. It achieves the same goal as [0-9].

Join my newsletter

I'll send you 1 email a week with links to all of the articles I've written that week

Buy Me A Coffee