Replace All Instances of a String in JavaScript
Jun 3, 2019
By default, the String#replace() function in JavaScript only replaces the first instance of a substring. Make sure you pass a RegExp with the /g flag set as shown below.
const str = 'A penny saved is a penny earned';
// "A dollar saved is a dollar earned"
str.replace(/penny/g, 'dollar');
// "A dollar saved is a penny earned" - only replaces the first
// instance by default.
str.replace('penny', 'dollar');
Remember JavaScript strings are immutable. When you use replace(), you don't modify the original string.
Replacement Patterns
The String#replace() function has several special character sequences called "replacement patterns". Replacement patterns are useful when you want to replace all substrings that match a regular expression with a string that contains the match.
For example, suppose you wanted to add a # before all numbers in a string. You can use the $& replacement pattern, which inserts the matched substring.
const str = 'My favorite team is 1, everyone else is 2';
// "My favorite team is #1, everyone else is #2"
str.replace(/\d+/g, '#$&');
Did you find this tutorial useful? Say thanks by starring our repo on GitHub!