[Java教程]replace方法第二个参数为函数时,函数的参数的含义
0 2015-03-27 12:00:19 var a="abcd1234efg456xy";console.log("%c======无分组======","font-size:16px;color:red");var b=a.replace(/\w/g,function(str,index){//正则表达式无分组//参数1是匹配到的字符串//参数3是匹配的字符串的起始位置索引console.log("字符:"+str+"||索引:"+index);return str;});console.log("%c======一个分组======","font-size:16px;color:red");var c=a.replace(/\d([a-z]+)/g,function(str,word,index){//一个捕获型分组//参数1是匹配到的整个字符串//参数2是分组匹配到的字符串//参数3是分组匹配的字符串的起始位置索引console.log("字符串:"+str+"||分组1匹配的字符:"+word+"||索引"+index);return word;});console.log("%c======多个个分组======","font-size:16px;color:red");var d=a.replace(/\d([a-z]+)(\d+)/g,function(str,word1,word2,index){//多个捕获型分组//参数1是匹配到的整个字符串//参数2是分组1匹配到的字符串//参数3是分组2匹配到的字符串//参数4是分组匹配的字符串的起始位置索引console.log("字符串:"+str+"||分组1匹配的字符:"+word1+"||分组2匹配到的字符:"+word2+"||索引:"+index);});
总结:当replace的第一个参数是正则表达式的时候,第二个参数为函数,此时函数的第一个参数表示匹配到的整个字符,最后一个参数表示每个分组匹配到的字符串的首字符的索引,中间的参数有0到n(捕获型分组个数)个,表示分组匹配到的字符串。
应用:jQuery中把“background-color”转换成驼峰写法"backgroundColor"var rdashAlpha = /-([\da-z])/gi, rmsPrefix = /^-ms-/, fcamelCase = function( all, letter ) { return ( letter + "" ).toUpperCase(); } var obj={ camelCase: function( string ) { return string.replace( rmsPrefix, "ms-" ).replace( rdashAlpha, fcamelCase); } } var toCamelCase=obj.camelCase; console.log(toCamelCase("background-color"));
本文网址:http://www.shaoqun.com/a/113161.html
*特别声明:以上内容来自于网络收集,著作权属原作者所有,如有侵权,请联系我们:admin@shaoqun.com。
函数
0