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 表单进行客户端验证demo
Aug 24 Javascript
详解JavaScript逻辑Not运算符
Dec 04 Javascript
JS根据浏览器窗口大小实时动态改变网页文字大小的方法
Feb 25 Javascript
js获取对象、数组的实际长度,元素实际个数的实现代码
Jun 08 Javascript
AngularJS Phonecat实例讲解
Nov 21 Javascript
javascript中递归的两种写法
Jan 17 Javascript
jquery中关于bind()方法的使用技巧分享
Mar 30 jQuery
vue.js实现数据动态响应 Vue.set的简单应用
Jun 15 Javascript
Vue.js常用指令的使用小结
Jun 23 Javascript
vue2.0 datepicker使用方法
Feb 04 Javascript
vue-cli 3.0 版本与3.0以下版本在搭建项目时的区别详解
Dec 11 Javascript
JavaScript遍历DOM元素的常见方式示例
Feb 16 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
dede3.1分页文字采集过滤规则详说(图文教程)续四
2007/04/03 PHP
php在线代理转向代码
2012/05/05 PHP
PHP数组去重比较快的实现方式
2016/01/19 PHP
浅谈Laravel中的一个后期静态绑定
2017/08/11 PHP
PHP读取并输出XML文件数据的简单实现方法
2017/12/22 PHP
PHP hex2bin()函数用法讲解
2019/02/25 PHP
Javascript 读书笔记索引贴
2010/01/11 Javascript
js几个验证函数代码
2010/03/25 Javascript
JavaScript 基础篇之对象、数组使用介绍(三)
2012/04/07 Javascript
一个获取第n个元素节点的js函数
2014/09/02 Javascript
JavaScript设计模式之策略模式实例
2014/10/10 Javascript
javascript实现动态表头及表列的展现方法
2015/07/14 Javascript
浅谈Javascript中Object与Function对象
2015/09/26 Javascript
JS实现的文字与图片定时切换效果代码
2015/10/06 Javascript
require.js配合插件text.js实现最简单的单页应用程序
2016/07/12 Javascript
Highcharts学习之数据列
2016/08/03 Javascript
原生javascript实现分页效果
2017/04/21 Javascript
详解Vue项目中出现Loading chunk {n} failed问题的解决方法
2018/09/14 Javascript
微信小程序购物车、父子组件传值及calc的注意事项总结
2018/11/14 Javascript
[02:32]DOTA2亚洲邀请赛 C9战队出场宣传片
2015/02/07 DOTA
Python内置的字符串处理函数整理
2013/01/29 Python
python topN 取最大的N个数或最小的N个数方法
2018/06/04 Python
详解关于Django中ORM数据库迁移的配置
2018/10/08 Python
Python3实现取图片中特定的像素替换指定的颜色示例
2019/01/24 Python
Python SQLAlchemy入门教程(基本用法)
2019/11/11 Python
python实现两个字典合并,两个list合并
2019/12/02 Python
Python 模拟动态产生字母验证码图片功能
2019/12/24 Python
Python脚本破解压缩文件口令实例教程(zipfile)
2020/06/14 Python
Python venv虚拟环境配置过程解析
2020/07/08 Python
HTML5中通过li-canvas轻松实现单图、多图、圆角图绘制,单行文字、多行文字等
2018/11/30 HTML / CSS
Yankee Candle官网:美国最畅销蜡烛品牌之一
2020/01/05 全球购物
Prototype如何实现页面局部定时刷新
2013/08/06 面试题
《桃花心木》教学反思
2014/02/17 职场文书
慰问信格式
2015/02/14 职场文书
2015年设计师个人工作总结
2015/04/25 职场文书
nginx实现多geoserver服务的负载均衡
2022/05/15 Servers