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插件开发之实现google+圈子选择功能
Mar 10 Javascript
jQuery中$.get、$.post、$.getJSON和$.ajax的用法详解
Nov 19 Javascript
node.js中的fs.closeSync方法使用说明
Dec 17 Javascript
超级简单实现JavaScript MVC 样式框架
Mar 24 Javascript
JS+DIV实现鼠标划过切换层效果的方法
May 25 Javascript
vue快捷键与基础指令详解
Jun 01 Javascript
vue将毫秒数转化为正常日期格式的实例
Sep 16 Javascript
Vue 动态组件与 v-once 指令的实现
Feb 12 Javascript
JavaScript定时器设置、使用与倒计时案例详解
Jul 08 Javascript
JavaScript数组去重实现方法小结
Jan 17 Javascript
浅谈Ant Design Pro 菜单自定义 icon
Nov 17 Javascript
vue使用element-ui实现表单验证
Dec 13 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
PHP自带函数给数字或字符串自动补齐位数
2014/07/29 PHP
php利用smtp类实现电子邮件发送
2015/10/30 PHP
jQuery 性能优化指南(3)
2009/05/21 Javascript
基于jQuery实现图片的前进与后退功能
2013/04/24 Javascript
JS实现简单的顶部定时关闭层效果
2014/06/15 Javascript
Javascript中数组sort和reverse用法分析
2014/12/30 Javascript
JavaScript实现LI列表数据绑定的方法
2015/08/04 Javascript
JS HTML5拖拽上传图片预览
2016/07/18 Javascript
AngularJS入门教程之数据绑定原理详解
2016/11/02 Javascript
js中apply和Math.max()函数的问题及区别介绍
2018/03/27 Javascript
详解在Vue中使用TypeScript的一些思考(实践)
2018/07/06 Javascript
如何写好一个vue组件,老夫的一年经验全在这了(推荐)
2019/05/18 Javascript
vue实现表单录入小案例
2019/09/27 Javascript
WEEX环境搭建与入门详解
2019/10/16 Javascript
微信小程序实现多选框全选与反全选及购物车中删除选中的商品功能
2019/12/17 Javascript
微信小程序吸底区域适配iPhoneX的实现
2020/04/09 Javascript
python实现文件名批量替换和内容替换
2014/03/20 Python
python中OrderedDict的使用方法详解
2017/05/05 Python
python3+selenium实现qq邮箱登陆并发送邮件功能
2019/01/23 Python
快速解决vue.js 模板和jinja 模板冲突的问题
2019/07/26 Python
浅析PyTorch中nn.Module的使用
2019/08/18 Python
Python爬虫爬取ts碎片视频+验证码登录功能
2021/02/22 Python
CSS3轻松实现清新 Loading 效果的简单实例
2016/06/06 HTML / CSS
经济实惠的豪华背包和行李袋:Packs Project
2018/10/17 全球购物
波兰珠宝品牌:YES
2019/08/09 全球购物
留学自荐信的技巧
2013/10/17 职场文书
机械专业毕业生自荐信
2013/11/02 职场文书
业务代表的岗位职责
2013/11/16 职场文书
2014年计算机专业个人自我评价
2014/01/19 职场文书
草船借箭教学反思
2014/02/03 职场文书
户外拓展活动方案
2014/02/11 职场文书
党的群众路线教育实践活动学习笔记
2014/11/05 职场文书
财务会计实训报告
2014/11/05 职场文书
学校会议通知范文
2015/04/15 职场文书
医务人员医德医风心得体会
2016/01/25 职场文书
如何用Navicat操作MySQL
2021/05/12 MySQL