JavaScript String replaceAll()方法

9391916ac1abfc8e127afcec762120a7.png

英文 | https://www.javascripttutorial.net/es-next/javascript-string-replaceall/

翻译 | 杨小爱

今天,我们将一起来学习 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回调具有下列参数:

  • match 是匹配的子串。

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

  • str 是原始字符串。

与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。

总结

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

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

学习更多技能

请点击下方公众号

97917e287eac941bc16ffe2f72b58860.gif

e6cdf728136330d8f1d7eafc4cdb50ce.png

9791c2083ebae03a233d001603981a01.png

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值