javascriptreplace()第⼆个参数为函数时的参数⽤法javascript的replace()第⼆个参数为函数时的参数:
replace()函数具有替换功能,它可以具有两个参数,第⼀个参数可以是要被替换的字符串或者匹配要被替换字符串的正则表达式,第⼆个参数可以是替换⽂本或者⼀个函数,下⾯看⼀下关于replace()函数的⼏个代码实例。
代码实例:
实例⼀:
<script>
var str="I love jb51 and you?";
console.place("jb","java"));
</script>
上⾯的代码只能够替换字符串中的第⼀个指定⼦字符串。
实例⼆:
<script>
var str="I love jb51 and you?";
var reg=/jb/g;
console.place(reg,"java"));
</script>
上⾯的代码可以将字符串中的所有指定⼦字符串替换掉。
实例三:
<script>
var str="I love jb51 and you?";
console.place("jb",function(){
return "java"}
)
);
</script>
上⾯的代码中,第⼆个参数是⼀个函数,可以⽤此函数的返回值替换字符串中指定的⼦字符串。当第⼆个参数为函数的时候,其实这个函数可以传递参数的,下⾯就通过代码实例介绍⼀下关于函数的参数问题。
代码如下:
<!DOCTYPE html>
<html>
<head>
<meta charset=" utf-8">
<title></title>
<script type="text/javascript">
var url = "www.jb51/o.php?mod=viewthread&tid=14743&extra=page%3D1";
//第⼀参数为字符串
var oneResult = place("www.jb51",function(){
console.log("replace输⼊参数:%o",arguments);
var val = /www.jb51/.exec(url);
console.log("exec输出参数:%o",val);
console.assert(arguments[0] === val[0]);
console.assert(arguments[1] === val["index"]);
console.assert(arguments[2] === val["input"]);
return "jb51";
});
console.log("replace返回字符串:"+oneResult);
字符串函数title作用
//第⼀参数为正则表达式
var regexp_global = /[?&](\w+)=([^&]*)/g;
var count = 0;
var twoResult = place(regexp_global,function(){
console.log("第"+(count++)+"次运⾏");
console.log("replace输⼊参数:%o",arguments);
var val = (url);
console.log("exec输出参数:%o",val);
console.assert(arguments[0] === val[0]);
console.assert(arguments[1] === val[1]);
console.assert(arguments[2] === val[2]);
console.assert(arguments[3] === val["index"]);
console.assert(arguments[4] === val["input"]);
return count;
});
console.log("replace返回字符串:"+twoResult);
</script>
</head>
<body>
</body>
</html>
在上⾯的代码中,分别演⽰了replace()函数第⼀参数是普通字符串和正则表达式的时候,第⼆个函数参数传递参数的情况,下⾯分别做⼀下简单的说明:
第⼀个参数是普通字符串:
当第⼀个参数是普通字符串的时候,那么只会替换原字符串中的第⼀个⼦字符串,也就是说只会执⾏⼀次替换操作,为函数传递的参数和以普通字符串参数作为正则表达式执⾏exec()函数返回的数组的元素是相同的。
第⼀个参数是正则表达式:
由于篇幅原因,这⾥只是截取了⼀部分运⾏结果内容,replace()函数的第⼀个参数是正则表达式,并且
执⾏的是全局匹配,那么第⼆个函数参数会多次被调⽤,每次被调⽤传递的参数,也是和(url)返回的数组的元素内容是相同的。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。