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 相关文章推荐
jquery toolbar与网页浮动工具条具体实现代码
Jan 12 Javascript
JavaScript中的单引号和双引号报错的解决方法
Sep 01 Javascript
javascript学习笔记(八)正则表达式
Oct 08 Javascript
Javascript中的默认参数详解
Oct 22 Javascript
Function.prototype.apply()与Function.prototype.call()小结
Apr 27 Javascript
jQuery实现带遮罩层效果的blockUI弹出层示例【附demo源码下载】
Sep 14 Javascript
vue todo-list组件发布到npm上的方法
Apr 04 Javascript
jQuery实现基本动画效果的方法详解
Sep 06 jQuery
详解关于element级联选择器数据回显问题
Feb 20 Javascript
vue鼠标悬停事件实例详解
Apr 01 Javascript
Vuex的actions属性的具体使用
Apr 14 Javascript
解决Vue + Echarts 使用markLine标线(precision精度问题)
Jul 20 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
深入PHP数据加密详解
2013/06/18 PHP
php模拟ping命令(php exec函数的使用方法)
2013/10/25 PHP
PHP英文字母大小写转换函数小结
2014/05/03 PHP
PHP处理会话函数大总结
2015/08/05 PHP
JavaScript 字符串连接性能优化
2008/12/20 Javascript
不用构造函数(Constructor)new关键字也能实现JavaScript的面向对象
2013/01/11 Javascript
可在线编辑网页文字效果代码(单击)
2013/03/02 Javascript
一个支付页面DEMO附截图
2014/07/22 Javascript
jQuery中$.click()无效问题分析
2015/01/29 Javascript
jQuery设置指定网页元素宽度和高度的方法
2015/03/25 Javascript
鼠标经过子元素触发mouseout,mouseover事件的解决方案
2015/07/26 Javascript
JavaScript运动减速效果实例分析
2015/08/04 Javascript
Bootstrap中的fileinput 多图片上传及编辑功能
2016/09/05 Javascript
基于MVC方式实现三级联动(JavaScript)
2017/01/23 Javascript
javascript 中设置window.location.href跳转无效问题解决办法
2017/02/09 Javascript
使用vux实现上拉刷新功能遇到的坑
2018/02/08 Javascript
vue中引用阿里字体图标的方法
2018/02/10 Javascript
微信小程序实现swiper切换卡内嵌滚动条不显示的方法示例
2018/12/20 Javascript
ES6的解构赋值实例详解
2019/05/06 Javascript
vue created钩子函数与mounted钩子函数的用法区别
2020/11/05 Javascript
django批量导入xml数据
2016/10/16 Python
python机器学习实战之最近邻kNN分类器
2017/12/20 Python
Python+request+unittest实现接口测试框架集成实例
2018/03/16 Python
numpy中以文本的方式存储以及读取数据方法
2018/06/04 Python
Django Docker容器化部署之Django-Docker本地部署
2019/10/09 Python
python3中sorted函数里cmp参数改变详解
2020/03/12 Python
如何在windows下安装配置python工具Ulipad
2020/10/27 Python
弄清Pytorch显存的分配机制
2020/12/10 Python
日本高岛屋百货购物网站:TAKASHIMAYA
2019/03/24 全球购物
文明学生标兵事迹
2014/01/21 职场文书
捐书活动总结
2014/05/04 职场文书
个人合伙协议书范本
2014/10/14 职场文书
2014年学校党建工作总结
2014/11/11 职场文书
原告离婚代理词
2015/05/23 职场文书
2020年个人安全保证书参考模板
2020/01/08 职场文书
golang生成vcf通讯录格式文件详情
2022/03/25 Golang