例如:我们第二个参数如果传递的是一个函数,每当正则在字符串中捕获一次当前的这个函数就执行一次 ->本题中一共捕获了两次,所以函数执行了两次
var str = "zhufeng2015 zhufeng2016"; str = str.replace(/zhufeng/g, function () {
2)参数问题
console.dir(arguments);
不仅仅是执行function,而且还给我们的函数传递了参数,并且传递的参数和每一次exec捕获的内容是一模一样的
如果是第一次exec捕获->["zhufeng",index:0,input:"原始字符串"]
第一次执行函数里面的参数
arguments[0] -> "zhufeng"/**/
arguments[1] -> 0 相当于exec中的index 开始捕获的索引位置
arguments[2] -> "原始字符串" 相当于exec中的input
3)返回值问题
return返回的是什么,就相当于把当前捕获的内容替换成什么
return "zhufengpeixun"; }); console.log(str);
您可能感兴趣的文章: