字符串方法 replace() 不仅可以用字符串替换原字符串的子串,还可以用回调函数来生成替换子串。
replace()
方法返回一个由替换值(replacement
)替换一些或所有匹配的模式(pattern
)后的新字符串。
// 语法:
str.replace(regexp|substr, newSubStr|function)
-
匹配模式 pattern:
regexp|substr
: 一个正则表达式 或 一个字符串regexp
: 匹配的内容会被newSubStr
替换 或 被function
的返回值替换 , 全局匹配模式g下, 所有匹配到的内容都会被替换
substr
:只有第一个被匹配到的内容会被替换
-
替换值 replacement:
newSubStr|function
:一个字符串 或 一个每次匹配都要调用的回调函数newSubStr
: 用于替换的字符,可以内插特殊变量名特殊变量名:
$$ : 替换值中插入一个 "$"
$&: 替换值中插入匹配的子串
$`: 替换值中插入当前匹配的子串左边的内容
$' : 替换值中插入当前匹配的子串右边的内容
$n: 匹配模式是
RegExp
时,0 <= n < 100 , 替换值中插入正则中第 n 个括号匹配的字符串function
: 用来创建新子字符串的函数,函数返回值替换匹配到的结果如果匹配模式是
RegExp
全局g ,那每次匹配到都会调用function
函数函数的参数:
match:匹配的子串,对应 $&,该参数必须有
p1,p2,p3... : 如果匹配模式是
RegExp
全局,表示第n个括号匹配的字符串,对应 $noffset : 匹配到的子字符串在原字符串中的偏移量
string : 被匹配的原字符串
NamedCaptureGroup:命名捕获组匹配的对象
-
返回值:
替换后的新字符串, 不改变原字符串
注释:主要来源MDN