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常考语句107条收集
Mar 09 Javascript
为jQuery增加join方法的实现代码
Nov 28 Javascript
jquery实现商品拖动选择效果代码(自写)
May 28 Javascript
JS实现图片横向滚动效果示例代码
Sep 04 Javascript
jquery改变disabled的boolean状态的三种方法
Dec 13 Javascript
一看就懂:jsonp详解
Jun 01 Javascript
修复jQuery tablesorter无法正确排序的bug(加千分位数字后)
Mar 30 Javascript
javascript for循环性能测试示例
Aug 07 Javascript
微信小程序监听用户登录事件的实现方法
Nov 11 Javascript
javascript实现文字跑马灯效果
Jun 18 Javascript
TypeScript 引用资源文件后提示找不到的异常处理技巧
Jul 15 Javascript
JavaScript实现点击图片换背景
Nov 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面向对象概念
2011/11/06 PHP
PHP正则表达式过滤html标签属性(DEMO)
2016/05/04 PHP
PHP实现加密文本文件并限制特定页面的存取的效果
2016/10/21 PHP
ExtJS PropertyGrid中使用Combobox选择值问题
2010/06/13 Javascript
禁用页面部分JavaScript方法的具体实现
2013/07/31 Javascript
js取消单选按钮选中示例代码
2013/11/14 Javascript
javascript中的原型链深入理解
2014/02/24 Javascript
AngularJs ng-route路由详解及实例代码
2016/09/14 Javascript
KnockoutJS 3.X API 第四章之事件event绑定
2016/10/10 Javascript
jQuery的Read()方法代替原生JS详解
2016/11/08 Javascript
bootstrap table 表格中增加下拉菜单末行出现滚动条的快速解决方法
2017/01/05 Javascript
jQuery实现限制文本框的输入长度
2017/01/11 Javascript
基于Bootstrap框架实现图片切换
2017/03/10 Javascript
win系统下nodejs环境安装配置
2017/05/04 NodeJs
让div运动起来 js实现缓动效果
2017/07/06 Javascript
Gulp实现静态网页模块化的方法详解
2018/01/09 Javascript
vue 组件 全局注册和局部注册的实现
2018/02/28 Javascript
trackingjs+websocket+百度人脸识别API实现人脸签到
2018/11/26 Javascript
python多线程扫描端口示例
2014/01/16 Python
浅谈MySQL中的触发器
2015/05/05 Python
Python实现按逗号分隔列表的方法
2018/10/23 Python
Python常用爬虫代码总结方便查询
2019/02/25 Python
Django框架搭建的简易图书信息网站案例
2019/05/25 Python
python批量下载抖音视频
2019/06/17 Python
django多个APP的urls设置方法(views重复问题解决)
2019/07/19 Python
基于Python-turtle库绘制路飞的草帽骷髅旗、美国队长的盾牌、高达的源码
2021/02/18 Python
澳洲女装时尚在线:Blue Bungalow
2018/05/05 全球购物
PHP两种查询函数array/row的区别
2013/06/03 面试题
RIP版本1跟版本2的区别
2013/12/30 面试题
为什么Runtime.exec(“ls”)没有任何输出?
2014/10/03 面试题
2014年单位植树节活动方案
2014/03/23 职场文书
今冬明春火灾防控工作方案
2014/05/29 职场文书
干部竞争上岗演讲稿
2014/09/11 职场文书
2014年政风行风工作总结
2014/11/22 职场文书
电影雷锋观后感
2015/06/10 职场文书
2019年最新证婚词精选集!
2019/06/28 职场文书