JavaScript 字符串 replaceAll() 方法

JavaScript replaceAll() 语法

replaceAll() 是 JavaScript 字符串的一个方法,它可以使用另一个字符串来替换当前字符串中符合条件的子串。

replaceAll() 方法可以看成是 replace() 方法一个 “变体”。默认情况下,replace() 方法只会替换第 1 个匹配项,而 replaceAll() 会替换所有匹配项。

语法:

str.replaceAll(pattern, replacement)

说明:

replaceAll() 方法接收以下 2 个参数。

  • pattern(必选):指定子串或正则表达式。当 pattern 是一个正则表达式时,它必须带有全局标志 “g” ,否则会抛出 TypeError 错误。
  • replacement(必选):表示使用哪个字符串来代替。

str.replaceAll(pattern, replacement) 其实很好理解,它表示先根据 pattern 来匹配出字符串中符合的子串,然后再使用 replacement 来替换所有这些子串。

注意:

  • replaceAll() 方法不会修改原字符串,而是返回一个新字符串。
  • replaceAll() 方法会严格区分大小写。

JavaScript replaceAll() 摘要

属于 JavaScript 替换字符串
使用频率
修改原字符串
官方文档 查看
MDN 查看

JavaScript replaceAll() 示例

接下来,我们通过几个简单的例子来讲解一下 JavaScript replaceAll() 方法是如何使用的。

示例 1:replaceAll() 不会修改原字符串

const str = "I love JavaScript JavaScript.";
const result = str.replaceAll("JavaScript", "Python");

console.log(str);
console.log(result);

运行结果如下。

I love JavaScript JavaScript.
I love Python Python.

分析:

从结果可以看出,replaceAll() 方法不会修改原字符串,而是返回一个新字符串(即替换后的字符串)。另外需要清楚的是,下面两种方式是等价的。

// 方式1:replace() 结合 g 标志
str.replace(/JavaScript/g, "Python");

// 方式2:replaceAll()
str.replaceAll(/JavaScript/g, "Python");

示例 2:replaceAll() 基本用法

const str = "I love JavaScript JavaScript.";

// 使用指定字符串
const result1 = str.replaceAll("JavaScript", "Python");
console.log(result1);

// 使用正则表达式
const result2 = str.replaceAll(/JavaScript/g, "Python");
console.log(result2);

运行结果如下。

I love Python Python.
I love Python Python.

分析:

需要注意的是,如果 replaceAll() 的参数是一个正则表达式,则必须要使用 “g” 参数,否则将就会报错。小伙伴们可以自行试一下。

示例 3:replaceAll() 不考虑大小写的替换

const str = "I love JavaScript javascript.";
const result = str.replaceAll(/JavaScript/ig, "Python");
console.log(result);

运行结果如下。

I love Python Python.

分析:

在大多数主流编程语言中(如 C++、Java、Python、JavaScript 等),正则表达式都是非常重要的。

replaceAll() 与 replace() 的区别

字符串的 replaceAll() 和 replace() 这两个方法很相似,它们之间的区别是:默认情况下,replace() 方法只会替换第 1 个匹配项,而 replaceAll() 方法则会替换所有匹配项。

示例 4:replace() vs replaceAll()

const str = "I love JavaScript JavaScript.";

const result1 = str.replace("JavaScript", "Python");
console.log(result1);

const result2 = str.replaceAll("JavaScript", "Python");
console.log(result2);

运行结果如下。

I love Python JavaScript.
I love Python Python.

提示: replace() 完全可以取代 replaceAll()。对于初学小伙伴来说,为了避免记忆负担,可以只重点掌握 replace()。

上一篇: replace()

下一篇: padStart()

给站长反馈

绿叶网正在不断完善中,小伙伴们如果发现任何问题,还望多多给站长反馈,谢谢!

邮箱:lvyenet@vip.qq.com

「绿叶网」服务号
绿叶网服务号放大
关注服务号,微信也能看教程。
绿叶网服务号