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 相关文章推荐
JavaScript中的事件处理
Jan 16 Javascript
Extjs学习笔记之八 继承和事件基础
Jan 08 Javascript
jquery实现的一个导航滚动效果具体代码
May 27 Javascript
简单实现js间歇或无缝滚动效果
Jun 29 Javascript
纯js实现悬浮按钮组件
Dec 17 Javascript
微信小程序 定位到当前城市实现实例代码
Feb 23 Javascript
vue如何从接口请求数据
Jun 22 Javascript
Node.js中Bootstrap-table的两种分页的实现方法
Sep 18 Javascript
koa router 多文件引入的方法示例
May 22 Javascript
深入理解Antd-Select组件的用法
Feb 25 Javascript
javascript设计模式 ? 工厂模式原理与应用实例分析
Apr 09 Javascript
js+cavans实现图片滑块验证
Sep 29 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
全国FM电台频率大全 - 10 江苏省
2020/03/11 无线电
PHP.MVC的模板标签系统(三)
2006/09/05 PHP
PHP中Session的概念
2006/10/09 PHP
smarty中先strip_tags过滤html标签后truncate截取文章运用
2010/10/25 PHP
PHP防CC攻击实现代码
2011/12/29 PHP
php文档工具PHP Documentor安装与使用方法
2016/01/25 PHP
PHP getName()函数讲解
2019/02/03 PHP
php写入mysql中文乱码的实例解决方法
2019/09/17 PHP
分享8个Laravel模型时间戳使用技巧小结
2020/02/12 PHP
“不能执行已释放的Script代码”错误的原因及解决办法
2007/09/09 Javascript
Javascript无阻塞加载具体方式
2013/06/28 Javascript
javascript预加载图片、css、js的方法示例介绍
2013/10/14 Javascript
js实现编辑div节点名称的方法
2014/12/17 Javascript
js动态修改表格行colspan列跨度的方法
2015/03/30 Javascript
JavaScript基本的输出和嵌入式写法教程
2015/10/20 Javascript
JS无缝滚动效果实现方法分析
2016/12/21 Javascript
JS实现异步上传压缩图片
2017/04/22 Javascript
vue通过watch对input做字数限定的方法
2017/07/13 Javascript
angularjs实现时间轴效果的示例代码
2017/11/29 Javascript
记录vue做微信自定义分享的一些问题
2019/09/12 Javascript
解决Layui数据表格的宽高问题
2019/09/28 Javascript
elementui更改el-dialog关闭按钮的图标d的示例代码
2020/08/04 Javascript
vant-ui AddressEdit地址编辑和van-area的用法说明
2020/11/03 Javascript
解读Python中degrees()方法的使用
2015/05/18 Python
Python模拟鼠标点击实现方法(将通过实例自动化模拟在360浏览器中自动搜索python)
2017/08/23 Python
python中从str中提取元素到list以及将list转换为str的方法
2018/06/26 Python
关于python下cv.waitKey无响应的原因及解决方法
2019/01/10 Python
俄罗斯金苹果网上化妆品和香水商店:Goldapple
2019/12/01 全球购物
三年级数学教学反思
2014/01/31 职场文书
学校校庆演讲稿
2014/05/22 职场文书
本科毕业生自荐信
2014/06/02 职场文书
财务检查整改报告
2014/11/06 职场文书
2015年度优秀员工推荐信
2015/03/23 职场文书
2015年团委副书记工作总结
2015/07/23 职场文书
如何书写邀请函?
2019/06/24 职场文书
开发一个封装iframe的vue组件
2021/03/29 Vue.js