ES11 新特性:String.prototype.replaceAll()

在 ES11 中,新增了一个非常实用的字符串方法:String.prototype.replaceAll()。该方法可以全局替换字符串中的所有匹配项,而不仅仅是第一个匹配项。本文将详细介绍这个新特性,以及如何使用它。

语法

String.prototype.replaceAll(searchValue, replaceValue)

  • searchValue:要被替换的字符串或正则表达式。
  • replaceValue:用来替换匹配项的字符串或函数。

示例

用字符串替换

----- --- - ------ -------
------------------------------- ------ -- ------ ------

在上面的示例中,我们用 x 替换了字符串中的所有 l

用正则表达式替换

----- --- - ------ -------
-------------------------------- ------ -- ------ ------

在上面的示例中,我们使用了正则表达式 /l/g,其中 g 表示全局匹配。

用函数替换

----- --- - ------ -------
-------------------------------- ------- -- ---------------------- -- ------ ------

在上面的示例中,我们使用了一个函数来替换匹配项。函数接收一个参数 match,表示匹配到的字符串。在本例中,我们将匹配到的字符串转换为大写字母。

使用场景

String.prototype.replaceAll() 可以用于各种场景,比如:

替换字符串中的所有空格

----- --- - ------ -------
---------------------------- -- ----- -- ------------

替换 URL 中的参数

----- --- - ----------------------------------------
------------------------------------ ----------- -- ---------------------------------------

替换 HTML 中的所有链接

----- ---- - --- ----------------------------------------
-------------------------------------------------- --------------------------- -- --- ------------------------------------------

注意事项

  • String.prototype.replaceAll() 方法返回一个新字符串,原字符串不会被修改。
  • searchValue 参数可以是一个字符串或正则表达式。如果是字符串,则只会替换第一个匹配项;如果是正则表达式,则可以全局匹配。
  • replaceValue 参数可以是一个字符串或函数。如果是字符串,则只会替换第一个匹配项;如果是函数,则可以自定义替换规则。

总结

String.prototype.replaceAll() 是一个非常实用的字符串方法,可以全局替换字符串中的所有匹配项。在实际开发中,我们经常需要对字符串进行替换操作,使用这个方法可以更加方便地完成这个任务。希望本文能够对你有所帮助。

来源:JavaScript中文网 ,转载请注明来源 本文地址:https://www.javascriptcn.com/post/66093c2bd10417a2227d7224