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

         /*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'


   


  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值