javascript string对象方法replace
2016-05-04 22:28
471 查看
最简单的replace用法是:
有时候我们希望只是在匹配的位置添加特定的字符:
以上结果为:
如果我们想要对匹配的位置进行数学计算,那么我们可以将第二个参数改为函数,其返回值就是在对应位置题换的字符:
以上结果为:
那么,这个函数的参数是什么呢?
第一个参数表示匹配的完整字符串,相当于 /([0-9])/g的exec方法的全局执行完之后的结果,如下:
正则表达式有多少个(),m后面就可以有多少个参数,这些参数就代表以上匹配结果中对应位置的内容。
这些()内的参数后面,还有一个参数,表示所有全局匹配串m在原始字符串中的起点:
var str = 'aaaaa9876b0000'; str.replace(/a/g,'A');
有时候我们希望只是在匹配的位置添加特定的字符:
var str = 'aaaaa9876b0000'; str.replace(/([0-9])/g,'[$1]');
以上结果为:
aaaaa[9][8][7][6]b[0][0][0][0]
如果我们想要对匹配的位置进行数学计算,那么我们可以将第二个参数改为函数,其返回值就是在对应位置题换的字符:
'abc123ba0c'.replace(/([0-9])/g,function(m){return 2*parseInt(m)})
以上结果为:
abc246ba0c
那么,这个函数的参数是什么呢?
第一个参数表示匹配的完整字符串,相当于 /([0-9])/g的exec方法的全局执行完之后的结果,如下:
>var reg = /([0-9])/g >reg.exec('abc123ba0c') ["1", "1"] >reg.exec('abc123ba0c') ["2", "2"] >reg.exec('abc123ba0c') ["3", "3"] >reg.exec('abc123ba0c') ["0", "0"]
正则表达式有多少个(),m后面就可以有多少个参数,这些参数就代表以上匹配结果中对应位置的内容。
这些()内的参数后面,还有一个参数,表示所有全局匹配串m在原始字符串中的起点:
>'abc123ba0c'.replace(/([a-z]+)([0-9]+)/g,function(m,p1,p2,p3,p4){console.log(m+' '+ p1 + ' '+p2+' ' + p3)}) abc123 abc 123 0 ba0 ba 0 6
相关文章推荐
- Javascript类型系统[数组,对象,数据类型]
- JS -- 异步加载进度条
- [JavaScript]'this'详解
- JS 操作style属性
- JSP中的遗留问题
- JSP技术概述
- JavaScript对象的常用函数
- JavaScript之单例实战
- BabylonJS文件格式---基于WebGL的H5 3D游戏引擎
- JavaScript学习之DOM编程
- WebBasic05-JS
- Javascript学习之常用对象
- javascript 闭包
- JSP网页之间get传参乱码
- JSTL下载与配置
- JavaScript -- 制作简易瀑布流
- JavaScript学习随记——错误类型
- html+Ajax和JSP的比较
- 5种JavaScript和CSS交互的方法
- JS无提示关闭浏览器窗口脚本以及不同浏览器对window.close()不同表现