定义和方法
replace()方法用于在字符串中用一些字符串替换另一些字符,或者替换一个与正则表达式匹配的子串。
语法
|
|
regexp/substr:
必需。规定子字符串或要替换的模式的 RegExp 对象。
请注意,如果该值是一个字符串,则将它作为要检索的直接量文本模式,而不是首先被转换为 RegExp 对象。
replacement:
必需。一个字符串值。规定了替换文本或生成替换文本的函数。
函数最后返回一个新的字符串,是用replacement替换了regexp的第一次匹配或所有匹配之后得到的。
- ECMAScript规定,replace()方法的参数replacement可以是函数而不是字符串,在这种情况下,每个匹配都调用该函数,它返回的字符串将替换文本使用。
- 函数里的形参有与否,用arguments来指向更为合理,当replacement是函数的时候,其参数个数情况如下:
- 如果正则匹配里没有分组匹配,那么函数参数只有三个。
- 如果正则匹配有分组匹配,那么函数的参数为3+n,n为分组的个数,不管是否匹配到,如没匹配到,其值为undefined
arguments返回参数含义
- 第一个参数表示参数匹配到的字符串
- 中间参数为子表达式匹配字符串,个数不限,匹配regexp对象中某个圆括号子表达式的字符串,可能是0个或多个这样的参数
- 倒数第二个参数表述匹配到的子字符串在字符串中开始匹配的位置
- 最后一个参数调用replace方法的字符串
|
|
在正则表达式中,比如(/(^|\s)([a-z])/g)中$2==(^|\s), $3==([a-z]),大概是这个样子进行匹配的