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 图片Silhouette Fadeins渐显效果
Feb 07 Javascript
javascript制作网页图片上实现下雨效果
Feb 26 Javascript
Bootstrap基本样式学习笔记之图片(6)
Dec 07 Javascript
Angularjs实现分页和分页算法的示例代码
Dec 23 Javascript
详解闭包解决jQuery中AJAX的外部变量问题
Feb 22 Javascript
JS实现发送短信验证后按钮倒计时功能(防止刷新倒计时失效)
Jul 07 Javascript
Underscore之Array_动力节点Java学院整理
Jul 10 Javascript
JavaScript自执行函数和jQuery扩展方法详解
Oct 27 jQuery
jquery实现回车键触发事件(实例讲解)
Nov 21 jQuery
vue + element-ui的分页问题实现
Dec 17 Javascript
浅谈Vue CLI 3结合Lerna进行UI框架设计
Apr 14 Javascript
vue引入Excel表格插件的方法
Apr 28 Vue.js
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
YII框架关联查询操作示例
2019/04/29 PHP
PHP笛卡尔积实现原理及代码实例
2020/12/09 PHP
jQuery Div中加载其他页面的实现代码
2009/02/27 Javascript
JQuery 学习笔记 选择器之六
2009/07/23 Javascript
gridpanel动态加载数据的实例代码
2013/07/18 Javascript
jQuery实现跨域iframe接口方法调用
2015/03/14 Javascript
jQuery实现简单的图片查看器
2020/09/11 Javascript
谷歌Chrome浏览器扩展程序开发小记
2016/01/06 Javascript
js+canvas绘制五角星的方法
2016/01/28 Javascript
JS 拦截全局ajax请求实例解析
2016/11/29 Javascript
nodejs中向HTTP响应传送进程的输出
2017/03/19 NodeJs
详解Vue-基本标签和自定义控件
2017/03/24 Javascript
Vue如何引入远程JS文件
2017/04/20 Javascript
JavaScript设计模式之策略模式详解
2017/06/09 Javascript
JS代码实现电脑配置检测功能
2018/03/21 Javascript
JS实现字符串中去除指定子字符串方法分析
2018/05/17 Javascript
Angular利用HTTP POST下载流文件的步骤记录
2020/07/26 Javascript
python创建和使用字典实例详解
2013/11/01 Python
python实现给字典添加条目的方法
2014/09/25 Python
Python入门篇之列表和元组
2014/10/17 Python
解决pandas使用read_csv()读取文件遇到的问题
2018/06/15 Python
python中单下划线_的常见用法总结
2018/07/10 Python
Python抽象和自定义类定义与用法示例
2018/08/23 Python
小白入门篇使用Python搭建点击率预估模型
2018/10/12 Python
Python模块的加载讲解
2019/01/15 Python
Python面向对象程序设计多继承和多态用法示例
2019/04/08 Python
python使用threading.Condition交替打印两个字符
2019/05/07 Python
对django2.0 关联表的必填on_delete参数的含义解析
2019/08/09 Python
python_matplotlib改变横坐标和纵坐标上的刻度(ticks)方式
2020/05/16 Python
英国知名奢侈品包包品牌:Milli Millu
2016/12/22 全球购物
个人简历中的自我评价怎么写
2014/01/26 职场文书
党日活动总结
2014/05/07 职场文书
优秀党员个人总结
2015/02/14 职场文书
给校长的建议书作文300字
2015/09/14 职场文书
CSS 文字装饰 text-decoration & text-emphasis 详解
2021/04/06 HTML / CSS
能用CSS实现的就不要麻烦JavaScript了
2021/10/05 HTML / CSS