JS中的replace(RegExp, Function)

最近看Qwrap代码,查阅了一些关于replace里function参数的问题。

ECMScript文档里写的是

String.prototype.replace (searchValue, replaceValue)

如果 replaceValue 是函数,则对每个匹配的子字符串,以 m + 3 个参数调用这个函数。第一个参数是匹配的子字符串。如果 searchValue 是正则表达式,接下来 m 个参数是 MatchResult(见 15.10.2.1)里的所有捕获值。第 m + 2 个参数是发生的匹配在 string 里的偏移量,第 m + 3 个参数是 string。结果是将输入的原字符串里的每个匹配子字符串替换为相应函数调用的返回值(必要的情况下转换为字符串)得到的字符串。

http://ecmascript.cn/#387

 

 

runcode

  [Ctrl+A 全部选择 提示:你可先修改部分代码,再按运行]

 

第一个参数得到的是匹配的整体字符串

然后依次的参数得到的是括号包括的子字符串

倒数第二个参数是字符串的偏移量

最后一个参数返回的是整个字符串。

 

https://developer.mozilla.org/zh-CN/docs/JavaScript/Reference/Global_Objects/String/replace

posted @ 2013-02-22 15:07  myzykj  阅读(472)  评论(0)    收藏  举报