javascript replace()第二个参数为函数时的参数用法(详细为大家解读)

replace()函数具有替换功能,它可以具有两个参数,第一个参数可以是要被替换的字符串或者匹配要被替换字符串的正则表达式,第二个参数可以是替换文本或者一个函数,下面看一下关于replace()函数的几个代码实例

javascript的replace()第二个参数为函数时的参数:

replace()函数具有替换功能,它可以具有两个参数,第一个参数可以是要被替换的字符串或者匹配要被替换字符串的正则表达式,第二个参数可以是替换文本或者一个函数,下面看一下关于replace()函数的几个代码实例。
代码实例:
实例一:

var str="I love jb51 and you?";console.log(str.replace("jb","java"));

登录后复制

上面的代码只能够替换字符串中的第一个指定子字符串。
实例二:

立即学习“Java免费学习笔记(深入)”;

var str="I love jb51 and you?";var reg=/jb/g;console.log(str.replace(reg,"java"));

登录后复制

上面的代码可以将字符串中的所有指定子字符串替换掉。
实例三:

var str="I love jb51 and you?";console.log(str.replace("jb",function(){ return "java"}));

登录后复制

上面的代码中,第二个参数是一个函数,可以用此函数的返回值替换字符串中指定的子字符串。当第二个参数为函数的时候,其实这个函数可以传递参数的,下面就通过代码实例介绍一下关于函数的参数问题。
代码如下:

nbsp;html>脚本之家var url = "http://www.jb51.net/o.php?mod=viewthread&tid=14743&extra=page%3D1";//第一参数为字符串console.group("字符串");var oneResult = url.replace("www.jb51.net",function(){ console.log("replace输入参数:%o",arguments); var val = /www.jb51.net/.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);console.groupEnd("字符串");    //第一参数为正则表达式console.group("正则表达式");var regexp_global = /[?&](w+)=([^&]*)/g;var count = 0;var twoResult = url.replace(regexp_global,function(){ console.log("第"+(count++)+"次运行"); console.log("replace输入参数:%o",arguments); var val = regexp_global.exec(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);console.groupEnd("正则表达式"); 

登录后复制

在上面的代码中,分别演示了replace()函数第一参数是普通字符串和正则表达式的时候,第二个函数参数传递参数的情况,下面分别做一下简单的说明:
第一个参数是普通字符串:

当第一个参数是普通字符串的时候,那么只会替换原字符串中的第一个子字符串,也就是说只会执行一次替换操作,为函数传递的参数和以普通字符串参数作为正则表达式执行exec()函数返回的数组的元素是相同的。
第一个参数是正则表达式:

由于篇幅原因,这里只是截取了一部分运行结果内容,replace()函数的第一个参数是正则表达式,并且执行的是全局匹配,那么第二个函数参数会多次被调用,每次被调用传递的参数,也是和regexp_global.exec(url)返回的数组的元素内容是相同的。

上面是我整理给大家的,希望今后会对大家有帮助。

相关文章:

利用js获取今天是今年的第几周(小示例,附有源码)

畅谈HTML+CSS+JS(详细讲解)

关于如何优化你的JS代码(图文教程)

以上就是javascript replace()第二个参数为函数时的参数用法(详细为大家解读)的详细内容,更多请关注【创想鸟】其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至253000106@qq.com举报,一经查实,本站将立刻删除。

发布者:PHP中文网,转转请注明出处:https://www.chuangxiangniao.com/p/2760862.html

(0)
上一篇 2025年3月8日 09:25:36
下一篇 2025年3月8日 09:25:44

AD推荐 黄金广告位招租... 更多推荐

相关推荐

发表回复

登录后才能评论