摘要: 在本教程中,您将学习有关 String replaceAll()
方法的知识,该方法用新字符串替换子字符串的所有出现。
JavaScript string replaceAll() 方法简介
String replace()
方法允许您将字符串中子字符串的第一次出现替换为新的子字符串。
要将子字符串的所有出现替换为新的子字符串,您可以重复调用 replace()
方法或使用带有全局标志 (g
) 的正则表达式。
ES2021 引入了 String replaceAll()
方法,该方法返回一个新字符串,其中模式的所有匹配项都被替换为替换项。
String.prototype.replaceAll(pattern, replacement)
Code language: CSS (css)
pattern
可以是字符串或 正则表达式。当 pattern
是正则表达式时,它需要包含全局标志 (g
);否则,replaceAll()
将抛出异常。
假设您犯了一个错误,应该使用 replace()
方法仅替换与模式匹配的第一次出现。
replacement
参数可以是字符串或 回调函数,它将为每个匹配项调用。
当 replacement
是回调函数时,它具有以下形式
replacement(match, offset, str)
replacement
回调具有以下参数
match
是匹配的子字符串。offset
是匹配子字符串在原始字符串中的偏移量。例如,如果原始字符串是'Hello'
并且匹配的子字符串是'll'
,则offset
将为 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);
Code language: JavaScript (javascript)
输出
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);
Code language: JavaScript (javascript)
输出
JavaScript will, Javascript will, javascript will rock you.
工作原理。
正则表达式 /js/gi
匹配包含子字符串 JS
的任何字符串,不区分大小写,即 JS
、Js
或 js
。
replaceAll()
方法用替换回调返回的值替换子字符串 JS
、Js
和 js
。
总结
- 使用 JavaScript 字符串
replaceAll()
方法将字符串中子字符串的所有出现替换为新的子字符串。