今天,我们将一起来学习 StringreplaceAll()方法,该方法用新字符串替换所有出现的子字符串。
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 StringreplaceAll()方法的例子。
下面的示例使用的字符串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.
下面的示例使用 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