JavaScript String.replace函数参数实例说明


Posted in Javascript onJune 06, 2013

Email:longsu2010 at yeah dot net
js String的replace函数的函数签名如下:
replace(match/* 字符串OR正则表达式 */, replacement/* 字符串OR函数 */)
作用是将源自符串中的match替换为replacement并返回替换后的字符串。
如果第一参数是字符串就没什么好说的了,但是要记住此时只在源自符串替换一次match(第一次)函数就执行完成了。

所以第一参数通常是一个正则表达式,举例如下:
replace(/a/g, "b") // 将源自符串中所有的a替换为b。

第二参数可以是一个字符串,该字符串中可以包含第一参数正则表达式的分组,举例如下:
replace(/(a){2,2}/g, "$1b") // 将源自符串中所有的aa替换为ab。

如果第二参数是一个函数的话,那么函数的参数是什么呢?举例如下:

"bbabc".replace(/(a)(b)/g, function(){ 
console.log(arguments) 
});

参数将依次为:
1、整个正则表达式匹配的字符。
2、第一分组匹配的内容、第二分组匹配的内容…… 以此类推直到最后一个分组。
3、此次匹配在源自符串中的下标(位置)。
4、源自符串
所以例子的输出是

["ab", "a", "b", 2, "bbabc"]

第二参数的返回值将会被替换到源自符串中,因若js函数无返值那么调用函数会得到undefined,所以如果第二参数无返回值undefined将会被替换到源自符串中。
如果第一参数是一个字符串,同时第二参数是一个函数的话,那就当成第一参数是一个没有分组的正则表达式好了,这样就可以确定第二参数的参数了。
文中有一些表述不当之处,如“替换到源自符串中”(源自符串只是充当模板的角色,并不真正发生改变,字符串是不可改变的变量),希望不会误导大家。

Javascript 相关文章推荐
select 控制网页内容隐藏于显示的实现代码
May 25 Javascript
基于jQuery的图片左右无缝滚动插件
May 23 Javascript
教你用AngularJS框架一行JS代码实现控件验证效果
Jun 23 Javascript
JavaScript自定义数组排序方法
Feb 12 Javascript
分享9个最好用的JavaScript开发工具和代码编辑器
Mar 24 Javascript
jQuery Ajax调用WCF服务详细教程
Mar 31 Javascript
Bootstrap基本插件学习笔记之按钮(21)
Dec 08 Javascript
基于JS实现bookstore静态页面的实例代码
Feb 22 Javascript
给Easyui-Datebox设置隐藏或者不可用的解决方法
May 26 Javascript
JavaScript切换搜索引擎的导航网页搜索框实例代码
Jun 11 Javascript
使用 js 简单的实现 bind、call 、aplly代码实例
Sep 07 Javascript
微信小程序8种数据通信的方式小结
Feb 03 Javascript
jquery DIV撑大让滚动条滚到最底部代码
Jun 06 #Javascript
window.showModalDialog参数传递中含有特殊字符的处理方法
Jun 06 #Javascript
js实现鼠标拖动图片并兼容IE/FF火狐/谷歌等主流浏览器
Jun 06 #Javascript
当鼠标移动到图片上时跟随鼠标显示放大的图片效果
Jun 06 #Javascript
原生js实现半透明遮罩层效果具体代码
Jun 06 #Javascript
jquery js 获取时间差、时间格式具体代码
Jun 05 #Javascript
JavaScript设置IFrame高度自适应(兼容各主流浏览器)
Jun 05 #Javascript
You might like
使用zend studio for eclipse不能激活代码提示功能的解决办法
2009/10/11 PHP
利用PHP生成CSV文件简单示例
2016/12/21 PHP
showModalDialog 和 showModelessDialog
2007/01/22 Javascript
简明json介绍
2008/09/28 Javascript
jquery实现在页面加载完毕后获取图片高度或宽度
2014/06/16 Javascript
jquery获取html元素的绝对位置和相对位置的方法
2014/06/20 Javascript
JavaScript数据结构与算法之栈详解
2015/03/12 Javascript
使用堆实现Top K算法(JS实现)
2015/12/25 Javascript
jQuery组件easyui对话框实现代码
2016/08/25 Javascript
JavaScript实现自定义媒体播放器方法介绍
2017/01/03 Javascript
JavaScript寄生组合式继承实例详解
2018/01/06 Javascript
浅谈Angular HttpClient简单入门
2018/05/04 Javascript
详解基于Vue cli生成的Vue项目的webpack4升级
2018/06/19 Javascript
利用chrome浏览器进行js调试并找出元素绑定的点击事件详解
2021/01/30 Javascript
vue实现的请求服务器端API接口示例
2019/05/25 Javascript
Vue的编码技巧与规范使用详解
2019/08/28 Javascript
CKEditor扩展插件:自动排版功能autoformat插件实现方法详解
2020/02/06 Javascript
Python教程之全局变量用法
2016/06/27 Python
图解Python变量与赋值
2018/04/03 Python
java中两个byte数组实现合并的示例
2018/05/09 Python
Python使用pyodbc访问数据库操作方法详解
2018/07/05 Python
win10下tensorflow和matplotlib安装教程
2018/09/19 Python
浅谈python中str字符串和unicode对象字符串的拼接问题
2018/12/04 Python
Flask框架单例模式实现方法详解
2019/07/31 Python
关于python 的legend图例,参数使用说明
2020/04/17 Python
利用python进行文件操作
2020/12/04 Python
莫斯科绝对前卫最秘密的商店:SVMoscow
2017/10/23 全球购物
财务人员个人求职信范文
2013/12/04 职场文书
大学生军训广播稿
2014/01/24 职场文书
制作部班长职位说明书
2014/02/26 职场文书
电子信息专业应届生自荐信
2014/06/04 职场文书
新文化运动的口号
2014/06/21 职场文书
学生会竞选演讲稿学习部
2014/08/25 职场文书
幼儿园园长个人总结
2015/03/02 职场文书
2015年小学重阳节活动总结
2015/07/29 职场文书
《生物入侵者》教学反思
2016/02/16 职场文书