JavaScript String replaceAll()方法

464次阅读  |  发布于3年以前

今天,我们将一起来学习 StringreplaceAll()方法,该方法用新字符串替换所有出现的子字符串。

JavaScript 字符串replaceAll()方法介绍

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

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

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

String.prototype.replaceAll(pattern, replacement)

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

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

replacement参数可以是一个字符串或一个回调函数将被调用的每场比赛。

当replacement是回调函数时,它具有以下形式:

replacement(match, offset, str)

该replacement回调具有下列参数:

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

JavaScript String replaceAll() 示例

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

1) 简单的 JavaScriptString replaceAll() 示例

下面的示例使用的字符串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() 带回调函数示例

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


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。

总结

最后,感谢您的阅读,如果您觉得今天的内容对您有所帮助,也请您分享给您做开发的朋友,也许能够帮助到他。

Copyright© 2013-2020

All Rights Reserved 京ICP备2023019179号-8