javascript 正则表达式触发函数进行高级替换

一般情况下我们可能会用到正则表达式去替换文本:

代码如下:

var a = "abc123aXc"; 
a.replace(/a.c/g, 'ZZ');

我们可以用函数来定义高级替换,而不是一个简单的字符串。比如:

执行结果为:

<a href="http://jb51.net/">
如果我们知道了传递参数的规则就会很清楚其原理了。事实上,如果在正则表达式中定义了子匹配,那么参数的长度会随着子匹配的个数改变,如果没有定义子匹配,那么长度是固定的。传参的规则为:

匹配字符串本身
所有子匹配(如果定义了)
匹配字符串在原始字符串中的位置

相关推荐