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 相关文章推荐
js之ActiveX控件使用说明 new ActiveXObject()
Mar 03 Javascript
js跨域访问示例(客户端/服务端)
May 19 Javascript
jQuery常用操作方法及常用函数总结
Jun 19 Javascript
一款基jquery超炫的动画导航菜单可响应单击事件
Nov 02 Javascript
JS+CSS实现可以凹陷显示选中单元格的方法
Mar 02 Javascript
JS实现鼠标点击展开或隐藏表格行的方法
Mar 03 Javascript
jQuery Easyui 下拉树组件combotree
Dec 16 Javascript
基于js中的存储键值对以及注意事项介绍
Mar 30 Javascript
谈谈React中的Render Props模式
Dec 06 Javascript
node.js中 redis 的安装和基本操作示例
Feb 10 Javascript
ES5 模拟 ES6 的 Symbol 实现私有成员功能示例
May 06 Javascript
vue中解决拖拽改变存在iframe的div大小时卡顿问题
Jul 22 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获取谷歌PR值算法,附上php查询PR值代码示例
2011/12/25 PHP
PHP中iconv函数转码时截断字符问题的解决方法
2015/01/21 PHP
深入理解PHP内核(一)
2015/11/10 PHP
PHP.vs.JAVA
2016/04/29 PHP
php中10个不同等级压缩优化图片操作示例
2016/11/14 PHP
实例讲解PHP中使用命名空间
2019/01/27 PHP
Laravel 5+ .env环境配置文件详解
2020/04/06 PHP
jquery 插件实现图片延迟加载效果代码
2010/02/06 Javascript
六款帮助你实现惊艳视差滚动效果的jQuery插件
2012/09/14 Javascript
让JavaScript和其它资源并发下载的方法
2014/10/16 Javascript
jquery mobile 实现自定义confirm确认框效果的简单实例
2016/06/17 Javascript
基于angularjs实现图片放大镜效果
2016/08/31 Javascript
使用node.js中的Buffer类处理二进制数据的方法
2016/11/26 Javascript
JS对象是否拥有某属性如何判断
2017/02/03 Javascript
Bootstrap模态框案例解析
2017/03/05 Javascript
ES6中class类用法实例浅析
2017/04/06 Javascript
详解 vue better-scroll滚动插件排坑
2018/02/08 Javascript
Vue 中对图片地址进行拼接的方法
2018/09/03 Javascript
微信小程序实现展示评分结果功能
2019/02/15 Javascript
Vue组件通信入门之Provide和Inject机制
2019/12/29 Javascript
javascript实现时间日期的格式化的方法汇总
2020/08/06 Javascript
python生成指定长度的随机数密码
2014/01/23 Python
举例讲解Python中metaclass元类的创建与使用
2016/06/30 Python
Python判断文件或文件夹是否存在的三种方法
2017/07/27 Python
Python实现一个简单的验证码程序
2017/11/03 Python
Python实现多属性排序的方法
2018/12/05 Python
详解Python文件修改的两种方式
2019/08/22 Python
Python 下载及安装详细步骤
2019/11/04 Python
详解html5 canvas 微信海报分享(个人爬坑)
2018/01/12 HTML / CSS
印度尼西亚值得信赖的第一家网店:Bhinneka
2018/07/16 全球购物
教师个人鉴定材料
2014/02/08 职场文书
年级组长自我鉴定
2014/02/22 职场文书
一位农村小子的自荐信
2014/04/07 职场文书
幼儿园六一活动总结
2014/08/27 职场文书
敬业奉献模范事迹材料
2014/12/24 职场文书
写好求职信的技巧解密
2019/05/14 职场文书