📜  JavaScript字符串replaceAll()(1)

📅  最后修改于: 2023-12-03 15:01:48.630000             🧑  作者: Mango

JavaScript字符串replaceAll()

JavaScript中已经支持使用replaceAll()函数来替换字符串中的子字符串,该方法可以实现浏览器原生的String.prototype.replaceAll()方法。本篇文章将介绍该函数的语法、使用方法以及一些注意事项。

语法
str.replaceAll(searchValue, newValue)
  • str:必需,要替换的字符串;
  • searchValue:必需,要被替换的子字符串;
  • newValue:必需,新字符串,用于替换searchValue。
使用方法

首先我们需要理解JavaScript中字符串的replaceAll()函数的作用,它可以将字符串中的所有符合要求的子串替换为新的字符串。

以下例子将字符串中所有的'def'替换成'123'。

var str = 'abcdefdef';
var newStr = str.replaceAll('def', '123');
console.log(newStr); //输出"abc123123"

需要注意的是,搜索字符不是正则表达式。如果你想在字符串中替换正则表达式,应该使用replace()方法。

在大多数情况下,人们在使用字符串replace()时需要实现“全局替换”的效果,而JavaScript中的replace()方法只会替换找到的第一个子字符串。这时就需要使用replaceAll()方法。

下面的例子更好地说明了replaceAll()的使用方法:

var str = "hello world hello world";
var newStr = str.replaceAll("world", "userName");
console.log(newStr); //输出: 'hello userName hello userName'

本例中,我们将原始字符串中的'world'替换成'userName',得到了新字符串。

上面代码中使用了regex(正则表达式)来进行全局替换,但是要注意正则表达式中的"\g"如果不加上转义字符,会被解析器当做空格处理。

以下是其他常见的用法:

  • 替换掉字符串中所有的,:
var str = "1,2,3";
var newStr = str.replaceAll(',', '');
console.log(newStr); //输出: '123'
注意事项
  • JavaScript ES10及以上版本中支持replaceAll()方法。在低版本的JavaScript中,可以使用正则表达式来模拟该函数实现全局替换。
  • searchValue是必需的,如果没有找到要替换的字符串,则不会发生任何操作。
  • 如果需要向字符串中插入一些特殊字符(如"$"或""),则需要使用双反斜杠("$"或"\")进行转义。
参考
  1. 字符串替换全局replaceAll()
  2. JavaScript 字符串中的 replaceAll() 函数介绍