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()。
