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优先加载笔记代码
Sep 30 Javascript
Mootools 1.2教程(3) 数组使用简介
Sep 14 Javascript
javascript闭包的理解和实例
Aug 12 Javascript
javascript解决innerText浏览器兼容问题思路代码
May 17 Javascript
关于删除时的提示处理(确定删除吗)
Nov 03 Javascript
浅谈checkbox的一些操作(实战经验)
Nov 20 Javascript
解析JSON对象与字符串之间的相互转换
Dec 18 Javascript
javascript实现tab响应式切换特效
Jan 29 Javascript
js 定义对象数组(结合)多维数组方法
Jul 27 Javascript
小程序开发实战:实现九宫格界面的导航的代码实现
Jan 19 Javascript
CountUp.js实现数字滚动增值效果
Oct 17 Javascript
javascript如何实现create方法
Nov 04 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解析xml 的四种简单方法(附实例)
2016/07/11 PHP
PHP实现的分页类定义与用法示例
2017/07/05 PHP
PHP简单实现记录网站访问量功能示例
2018/06/06 PHP
基于laravel Request的所有方法详解
2019/09/29 PHP
浅析PHP反序列化中过滤函数使用不当导致的对象注入问题
2020/02/15 PHP
PHP基于array_unique实现二维数组去重
2020/07/14 PHP
baidu博客的编辑友情链接的新的层窗口!经典~支持【FF】
2007/02/09 Javascript
使Ext的Template可以解析二层的json数据的方法
2007/12/22 Javascript
JS小框架 fly javascript framework
2009/11/26 Javascript
checkbox全选/取消全选以及checkbox遍历jQuery实现代码
2009/12/02 Javascript
通过JS自动隐藏手机浏览器的地址栏实现原理与代码
2013/01/02 Javascript
详解WordPress开发中get_current_screen()函数的使用
2016/01/11 Javascript
WordPress中鼠标悬停显示和隐藏评论及引用按钮的实现
2016/01/12 Javascript
JavaScript ES6的新特性使用新方法定义Class
2016/06/28 Javascript
javascript简单进制转换实现方法
2016/11/24 Javascript
简单易懂的天气插件(代码分享)
2017/02/04 Javascript
通过示例彻底搞懂js闭包
2017/08/10 Javascript
Vue.js 的移动端组件库mint-ui实现无限滚动加载更多的方法
2017/12/23 Javascript
解决JSON.stringify()自动将中文转译成unicode的问题
2018/01/05 Javascript
微信小程序自定义组件传值 页面和组件相互传数据操作示例
2019/05/05 Javascript
vue 移动端注入骨架屏的配置方法
2019/06/25 Javascript
node.js中 mysql 增删改查操作及async,await处理实例分析
2020/02/11 Javascript
webpack3.0升级4.0的方法步骤
2020/04/02 Javascript
[02:54]DOTA2英雄基础教程 撼地者
2014/01/14 DOTA
Python可跨平台实现获取按键的方法
2015/03/05 Python
用Python编写分析Python程序性能的工具的教程
2015/04/01 Python
Python中关键字nonlocal和global的声明与解析
2017/03/12 Python
Python3 queue队列模块详细介绍
2018/01/05 Python
Python输出指定字符串的方法
2020/02/06 Python
python模拟实现分发扑克牌
2020/04/22 Python
Flask处理Web表单的实现方法
2021/01/31 Python
html通过canvas转成base64的方法
2019/07/18 HTML / CSS
推荐WEB开发者最佳HTML5和CSS3代码生成器
2015/11/24 HTML / CSS
文明学生事迹材料
2014/01/29 职场文书
歌唱比赛策划方案
2014/06/06 职场文书
2015年大学宣传部工作总结
2015/05/26 职场文书