replaceAll()
的语法为:
str.replaceAll(pattern, replacement)
在这里, str
是一个字符串。
replaceAll()参数
replaceAll()
方法采用:
-
pattern
-要替换的子字符串或正则表达式 -
replacement
-的pattern
被替换为这个replacement
(可以是一个字符串或一函数)
从replaceAll()返回值
-
replaceAll()
方法返回一个新的字符串 ,该字符串的所有匹配项都将替换为替换项。
注意:不带全局(“ g “)标志的RegExp
将抛出TypeError
。
示例1:使用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);
输出
JavaScript is awesome. JavaScript is fun
JavaScript is awesome. JavaScript is fun.
不考虑大写/小写替换
replaceAll()
方法区分大小写。要执行不区分大小写的替换,您需要使用带i
开关的正则表达式(不区分大小写的搜索)。
示例2:不区分大小写的替换
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
输出
JS JS
示例3:通过函数代替
您还可以将函数 (而不是字符串)作为第二个参数传递给replaceAll()
方法。
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);
输出
4.3518
运行此程序时,您可能会得到不同的输出。这是因为文本中的第一个数字被0到9之间的随机数字所代替。
推荐读物: JavaScript String replace()