【发布时间】:2011-05-06 01:43:36
【问题描述】:
在我阅读的有关此功能的书籍中,我似乎得到了相互矛盾的建议。 我想知道是否有人可以澄清一下。 例如 Nicholas Zakas 声明函数参数具有格式的签名 function(match, pos, originalText) (P139 : Pro JavaScript for Web Developers 2nd ed : Wrox)
他接着说,当正则表达式有一个匹配时,函数会传递三个参数(如上)。当有多个捕获组时,每个匹配的字符串作为参数传入,最后两个位置是位置和原始文本...
然后我们来到 Doug Crockfords,JavaScript:好的部分。 (P90): 他再次将语法规定为 string(searcValue,replaceValue) searchValue 可以是一个正则表达式 - 很好的匹配.. 如果 replaceValue 是一个函数,第一个参数是匹配的文本,那么第二个是捕获组 1,第三个是捕获组 2,依此类推.. 这里有一个明显的区别。 (即没有位置参数)
我还在查看 Pro JavaScript 设计模式 (APress P152) 中的一个示例,它启动了整个交叉引用过程。这些人(Ross Harmes/Dustin Diaz)用两个名为 a 和 b 的参数指定了 replaceValue 函数,这是毫无帮助的。 但它往往会强化 Doug Crockford 所描述的概念。
有人可以确认 Nicholas Zakas 的描述是否也确实是一个有效的选项吗?
【问题讨论】:
标签: javascript string replace