replace( [ RegExp | String ], [ String | Function ] ) :
1、返回值:
返回新的字符串,不会改变源字符串本身;
2、参数:
第一个参数 : 正则 或者 字符串;
第二个参数: 字符串 或者 方法
3、示例:
例1:
replace( 字符串, 字符串 ) : 只能替换一个,不能全局替换,因为不是写正则
let str = '陈碧华,陈'
str = str.replace('陈','chen')
console.log(str) // 'chen碧华,陈'
例2:
replace( 正则, 字符串 ) : 可以使用 /g 进行全局匹配,能替换全部
let str = '陈碧华,陈'
str = str.replace(/陈/g,'chen')
console.log(str) //'chen碧华,chen'
例3:
replace( 正则不分组, function ) : 每匹配到一次,function就会执行一次
function 中默认有3个参数:
0 匹配到的子字符串;1 匹配到的字符串的索引; 2 源字符串本身
let str = '陈碧华,陈'
str = str.replace(/陈/g,function() {
console.log(arguments)
return 'chen'
})
解析: 因为用全局 /g ,所以会匹配到两个,所以function会执行2次, 注意如果是箭头函数的话是没有arguments参数的,要自己放形参来访问
例4:
replace( 正则分组, function) : 每匹配到一次函数会执行一次
参数: 0 匹配到的字符串, 1 匹配到的第一个分组项 (.... 剩下的一个个分组), 接下来是匹配到字符串的索引, 接下来是源字符串本身
解析: 0:匹配的子字符串, 1:第一个分组, 2:子字符串索引, 3:源字符串
解析: 0:匹配的子字符串, 1:第一个分组, 2:第二个分组,3:索引, 4:源字符串