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读取ASP设定的COOKIE
Nov 24 Javascript
juqery 学习之三 选择器 可见性 元素属性
Nov 25 Javascript
Jquery 选中表格一列并对表格排序实现原理
Dec 15 Javascript
JS Loading功能的简单实现
Nov 29 Javascript
JS获取几种URL地址的方法小结
Feb 26 Javascript
js跨域问题浅析及解决方法优缺点对比
Nov 08 Javascript
关于Jquery中的bind(),on()绑定事件方式总结
Oct 26 Javascript
常用原生js自定义函数总结
Nov 20 Javascript
jquery删除数组中重复元素
Dec 05 Javascript
深究AngularJS中$sce的使用
Jun 12 Javascript
使用vue实现各类弹出框组件
Jul 03 Javascript
JavaScript的console命令使用实例
Dec 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
php和mysql中uft-8中文编码乱码的几种解决办法
2012/04/19 PHP
yii2.0数据库迁移教程【多个数据库同时同步数据】
2016/10/08 PHP
PHP校验15位和18位身份证号的类封装
2018/11/07 PHP
php实现微信公众号创建自定义菜单功能的实例代码
2019/06/11 PHP
laravel实现查询最后执行的一条sql语句的方法
2019/10/09 PHP
UI Events 用户界面事件
2012/06/27 Javascript
新增加的内容是如何将div的scrollbar自动移动最下面
2014/01/02 Javascript
轻松实现javascript图片轮播特效
2016/01/13 Javascript
JavaScript下的时间格式处理函数Date.prototype.format
2016/01/27 Javascript
jQuery Mobile框架中的表单组件基础使用教程
2016/05/17 Javascript
JS实现无缝循环marquee滚动效果
2017/05/22 Javascript
jquery写出PC端轮播图实例
2018/01/26 jQuery
webpack分离css单独打包的方法
2018/06/12 Javascript
解决jquery有正确返回值但不执行success函数的问题
2018/08/20 jQuery
写gulp遇到的ES6问题详解
2018/12/03 Javascript
vue服务端渲染操作简单入门实例分析
2019/08/28 Javascript
谈一谈vue请求数据放在created好还是mounted里好
2020/07/27 Javascript
Vue组件生命周期运行原理解析
2020/11/25 Vue.js
python网络编程之数据传输UDP实例分析
2015/05/20 Python
python 实现对文件夹内的文件排序编号
2018/04/12 Python
python 定时任务去检测服务器端口是否通的实例
2019/01/26 Python
Python使用pymongo库操作MongoDB数据库的方法实例
2019/02/22 Python
python爬虫 模拟登录人人网过程解析
2019/07/31 Python
OpenCV Python实现图像指定区域裁剪
2021/03/12 Python
Python如何发送与接收大型数组
2020/08/07 Python
python实现按日期归档文件
2021/01/30 Python
无谷物狗粮:Pooch & Mutt
2018/05/23 全球购物
统计每一学生的平均成绩
2014/06/06 面试题
清洁工表扬信
2014/01/08 职场文书
《跟踪台风的卫星》教学反思
2014/04/10 职场文书
公司应聘求职信
2014/06/21 职场文书
做一个有道德的人活动方案
2014/08/25 职场文书
企业党建工作总结2015
2015/05/26 职场文书
幼儿园托班开学寄语(2016秋季)
2015/12/03 职场文书
《黄道婆》教学反思
2016/02/22 职场文书
php中配置文件保存修改操作 如config.php文件的读取修改等操作
2021/05/12 PHP