The replaceAll()
method returns a new string with all matches of a pattern replaced by a replacement.
Example
const message = "ball bat";
// replace all occurrence of b with c
let result = message.replaceAll('b', 'c');
console.log(result);
// Output: call cat
replaceAll() Syntax
The syntax of replaceAll()
is:
str.replaceAll(pattern, replacement)
Here, str
is a string.
replaceAll() Parameter
The replaceAll()
method takes in:
pattern
- either a substring or a regex that is to be replacedreplacement
- thepattern
is replaced with thisreplacement
(can be either a string or a function)
replaceAll() Return Value
- The
replaceAll()
method returns a new string, with all matches of a pattern replaced by a replacement.
Note: A RegExp
without the global ("g") flag will throw a TypeError
.
Example 1: Using replaceAll()
const text = "Java is awesome. Java is fun.";
// passing a string as the first parameter
let pattern = "Java";
let new_text = text.replaceAll(pattern, "JavaScript");
console.log(new_text);
// passing a regex as the first parameter
pattern = /Java/g;
new_text = text.replaceAll(pattern, "JavaScript");
console.log(new_text);
Output
JavaScript is awesome. JavaScript is fun JavaScript is awesome. JavaScript is fun.
Replace Without Considering Uppercase/Lowercase
The replaceAll()
method is case sensitive. To perform the case-insensitive replacement, you need to use a regex with a i
switch (case-insensitive search).
Example 2: Case-Insensitive Replacement
const text = "javaSCRIPT JavaScript";
// all occurrences of javascript is replaced
let pattern = /javascript/gi; // case-insensitive and global search
let new_text = text.replaceAll(pattern, "JS");
console.log(new_text); // JS JS
Output
JS JS
Example 3: Passing Function as a Replacement
You can also pass a function (instead of a string) as the second parameter to the replaceAll()
method.
const text = "3.1415";
// generate a random digit between 0 and 9
function generateRandomDigit() {
return Math.floor(Math.random() * 10);
}
// regex to match a digit
const pattern = /\d/g;
const new_text = text.replaceAll(pattern, generateRandomDigit);
console.log(new_text);
Output
4.3518
You may get different output when you run this program. It's because the first digit in text is replaced with a random digit between 0 and 9.
Recommended Reading: JavaScript String replace()