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 相关文章推荐
Google Suggest ;-) 基于js的动态下拉菜单
Oct 11 Javascript
JS操作CSS随机改变网页背景实现思路
Mar 10 Javascript
JavaScript sup方法入门实例(把字符串显示为上标)
Oct 20 Javascript
jQuery中:disabled选择器用法实例
Jan 04 Javascript
AngularJS利用Controller完成URL跳转
Aug 09 Javascript
JS 实现Base64编码与解码实例详解
Nov 07 Javascript
jquery插件bootstrapValidator数据验证详解
Nov 09 Javascript
JavaScript同源策略和跨域访问实例详解
Apr 03 Javascript
在vue中使用echarts图表实例代码详解
Oct 22 Javascript
Vue快速实现通用表单验证的示例代码
Jan 09 Javascript
Vue表单控件数据绑定方法详解
Feb 05 Javascript
vue+elementui实现点击table中的单元格触发事件--弹框
Jul 18 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你的验证码安全码?
2007/01/02 PHP
php 随机数的产生、页面跳转、件读写、文件重命名、switch语句
2009/08/07 PHP
PHP中Header使用的HTTP协议及常用方法小结
2014/11/04 PHP
详解php中 === 的使用
2016/10/24 PHP
PHP函数按引用传递参数及函数可选参数用法示例
2018/06/04 PHP
PHP基于cookie实现统计在线人数功能示例
2019/01/16 PHP
jquery.Ajax()方法调用Asp.Net后台的方法解析
2014/02/13 Javascript
JavaScript中实现PHP的打乱数组函数shuffle实例
2014/10/11 Javascript
js获取页面及个元素高度、宽度的代码
2016/04/26 Javascript
ionic 上拉菜单(ActionSheet)实例代码
2016/06/06 Javascript
浅谈js中用$(#ID)来作为选择器的问题(id重复的时候)
2017/02/14 Javascript
详解js几个绕不开的事件兼容写法
2017/08/30 Javascript
nodejs使用redis作为缓存介质实现的封装缓存类示例
2018/02/07 NodeJs
详解给Vue2路由导航钩子和axios拦截器做个封装
2018/04/10 Javascript
微信小程序云开发之数据库操作
2019/05/18 Javascript
javascript异常处理实现原理详解
2020/02/17 Javascript
nodejs+koa2 实现模仿springMVC框架
2020/10/21 NodeJs
[04:05]TI9战队采访 - Natus Vincere
2019/08/22 DOTA
Python matplotlib绘图可视化知识点整理(小结)
2018/03/16 Python
python单例模式实例解析
2018/08/28 Python
vscode 配置 python3开发环境的方法
2019/09/19 Python
Django 框架模型操作入门教程
2019/11/05 Python
python中sympy库求常微分方程的用法
2020/04/28 Python
解决python中import文件夹下面py文件报错问题
2020/06/01 Python
idea2020手动安装python插件的实现方法
2020/07/17 Python
10个python爬虫入门实例(小结)
2020/11/01 Python
python中的时区问题
2021/01/14 Python
四方通行旅游网:台湾订房、出国旅游
2017/09/20 全球购物
Mybag美国/加拿大:英国奢华包包和名牌手袋网站
2020/02/16 全球购物
New Balance比利时官方网站:购买鞋子和服装
2021/01/15 全球购物
实习老师离校感言
2014/02/03 职场文书
人事文员岗位职责
2014/02/16 职场文书
物控部经理职务说明书
2014/02/25 职场文书
英语系本科生求职信
2014/07/15 职场文书
手把手教你导入Go语言第三方库
2021/08/04 Golang
详解Python+OpenCV绘制灰度直方图
2022/03/22 Python