replace
作用
用于对字符串中的部分片段进行替换。会返回一个新字符串,并不会改变原字符串。
参数
该方法接收 2 个参数:
-
第一个参数是字符串或正则表达式,用来匹配字符串;
-
第二个参数是字符串或函数,用来对匹配到的字符串进行处理。
使用
根据参数的类型,把使用情况分成以下四类
- 字符串,字符串:直接替换
const string = 'aaaaaaaaaaaaaaaa'
string.replace('a', 'A') // Aaaaaaaaaaaaaaaa
- 字符串,函数:可以进行一些处理
const string = 'aaaaaaaaaaaaaaaa'
string.replace('aa', (m) => {
// m 是匹配到的字符串
console.log(m); // aa
})
- 正则表达式,字符串:直接替换
const string = 'aaaaaaaaaaaaaaaa'
string.replace(/a/, 'A') // Aaaaaaaaaaaaaaaa
string.replace(/a/g, 'A') // AAAAAAAAAAAAAAAA
- 正则表达式,函数:可以进行一些处理
const string = 'aaaaaaaaaaaaaaaa'
string.replace(/a/, (m) => {
console.log(m);
})
string.replace(/a/g, (m) => {
console.log(m);
})
小结
- 替换时默认只替换第一个匹配到的字符串,如果使用正则表达式的话可以通过配置全局标志来替换所有匹配到的字段;
- 第二个参数为函数时可对匹配到的字符串进行更加灵活的操作。
replaceAll
作用、参数同上,区别在于
- 第一个参数是字符串时,替换所有匹配到的字符串;
- 第一个参数是正则表达式时,正则表达式必须设置全局标志才会替换,否则报错。