调用方法str.replace(regexp|substr, newSubStr|function)
javascript
regexp,正则表达式java
substr,须要被替换的字符串正则表达式
newSubStr,用于替换的字符串函数
function,一个用于建立新字符串的函数spa
var text = 'cat,bat,sat,fat' var result = text.replace('at','ut') // cut,bat,sat,fat
$$ 插入一个$code
$& 插入匹配的子串regexp
$` 插入当前匹配的子串左边的内容对象
$' 插入当前匹配的子串右边的内容blog
$n 假设第一个参数是RegExp对象,而且n是个小于100的非负整数,那么插入的是第n个括号匹配的字符串ip
var text = 'cat,bat,sat,fat' text.replace('at','$`') // cc,bat,sat,fat text.replace('at','$\'') // c,bat,sat,fat,bat,sat,fat text.replace(/(a)(t)/,'$1') // ca,bat,sat,fat text.replace(/(a)(t)/,'$2') // ct,bat,sat,fat
若是第二个参数为函数,若是匹配成功,函数就会执行,函数的返回值做为替换字符串。$特殊变量名将不能使用。若是第一参数是正则表达式,而且是全局模式,那么这个方法会被调用屡次,每次匹配都会被调用
函数参数以下:
match 匹配的字符串,对应$&
p1,p2……,若是第一个参数是RegExp对象,则表明第n个括号匹配的字符串,对应$1,$2……
offset 匹配的字符串在原字符串中的偏移量
string 被匹配的原字符串
var text = 'cat,bat,sat,fat' var result = text.replace(/(a)(t)/g,function(...args){ console.log(args) }) console.log('result:', result) // 输出结果 // ["at", "a", "t", 1, "cat,bat,sat,fat"] // ["at", "a", "t", 5, "cat,bat,sat,fat"] // ["at", "a", "t", 9, "cat,bat,sat,fat"] // ["at", "a", "t", 13, "cat,bat,sat,fat"] // result: cundefined,bundefined,sundefined,fundefined 由于我没有返回值,因此是undefined