【JS字符串】replaceAll() – 将所有出现的与模式匹配的子串替换为新的

JavaScript字符串1年前 (2023)发布 admin
1,642 0

在本教程中,您将了解 String replaceAll() 方法,该方法用新字符串替换所有出现的子字符串。

JavaScript字符串replaceAll()方法介绍

String replace() 方法允许您用新子字符串替换字符串中第一次出现的子字符串。

要用新子串替换所有出现的子串,您可以重复调用 replace() 方法或使用带有全局标志 (g) 的正则表达式。

ES2021 引入了 String replaceAll() 方法,该方法返回一个新字符串,其中所有匹配的模式都被替换:

String.prototype.replaceAll(pattern, replacement)

pattern可以是字符串或正则表达式。 当pattern为正则表达式时,需要包含全局标志(g); 否则,replaceAll() 将抛出异常。

假设您犯了一个错误,应该使用 replace() 方法来替换仅与pattern匹配的第一个匹配项。

替换参数可以是字符串或将为每个匹配项调用的回调函数。

当替换为回调函数时,它具有以下形式:

replacement(match, offset, str)

replacement回调具有以下参数:

  • match 是匹配的子串。
  • offset 是原始字符串中匹配子字符串的偏移量。 例如,如果原始字符串是“Hello”,匹配的子字符串是“ll”,那么偏移量将为 2。
  • str 是原始字符串。

与 replace() 方法一样,replaceAll() 方法不会更改原始字符串。 它返回新的全新字符串,其中的模式被替换。

JavaScript String replaceAll() 例子

让我们举一些使用 JavaScript String replaceAll() 方法的例子。

1) 简单的 JavaScriptString replaceAll() 例子

以下示例使用 String replaceAll() 方法将字符串 JS 替换为字符串 JavaScript 中的字符串 ‘JS will, JS will, JS will rock you’:

let str = ‘JS will, JS will, JS will rock you.’;
let newStr = str.replaceAll(‘JS’,’JavaScript’);

console.log(newStr);

输出:

JavaScript will, JavaScript will, JavaScript will rock you.

2) JavaScript String replaceAll() 带回调函数的例子

以下示例使用 String replaceAll() 方法通过正则表达式搜索子字符串。 它用回调函数确定的特定替换替换每个匹配项:

let str = ‘JS will, Js will, js will rock you.’;

let pattern = /js/gi;

str.replaceAll(pattern, function(match, offset, str) {
if(match === ‘JS’) return ‘JavaScript’;
if(match === ‘Js’) return ‘Javascript’;
if(match === ‘js’) return ‘javascript’;
return ”;
});

console.log(newStr);

输出:

JavaScript will, Javascript will, javascript will rock you.

看看这个程序是怎么运行的:

正则表达式 /js/gi 匹配任何包含子字符串 JS 的字符串,不区分大小写,即 JS、Js 或 js。

replaceAll() 方法用替换回调的返回值替换子字符串 JS、Js 和 js。

总结

使用 JavaScript 字符串 replaceAll() 方法用字符串中的新子字符串替换所有出现的子字符串。

© 版权声明

相关文章

暂无评论

暂无评论...