您的位置:首页 > Web前端 > JQuery

通过jQuery的camelCase方法,解析string的replace()函数

2016-06-28 16:43 567 查看
         /*jQuery的camelCase*/
fcamelCase = function( all, letter ) {
return letter.toUpperCase();
};
var str = "ms-abc-def-mgh";

alert(str.replace(
/(-[\da-z])/gi, fcamelCase ));//ms-Abc-Def-Mgh

alert(str.replace( /-([\da-z])/gi, fcamelCase ));//msAbcDefMgh

 两个正则表达式很相近。但是结果却不相同,原因:当replace第二个参数传入的是一个函数时,

 正常情况这个函数包含三个参数:第一个参数表示匹配到的字符,第二个参数表示匹配到的字符最小索引位置(RegExp.index),第  三个参数表示被匹配的字符串(RegExp.input)

 当正则中有小括号进行分组时,这个函数包含四个参数:第一个参数表示匹配到的字符,第二个参数表示分组中匹配到的字符串,第  三个参数匹配到的字符最小索引位置(RegExp.index),第四个参数表示被匹配的字符串(RegExp.input)

所以执行第一个正则时:参数all:‘-a’   letter:'-a'  -->return ‘-A’

         执行第二个正则时:参数all:'-a'   letter:'a'     -->return 'A'

   
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: