將“連字符字符串”轉化爲駝峯字符串

一:實現代碼:

var camelizeRE = /-(\w)/g;

function camelize(str){
   return str.replace(camelizeRE,function(_,c){
      return c ? c.toUpperCase():'';
   })
}

camelize('kkk-zzz-hhh');   kkkZzzHzz;

二: 實現原理:

1.replace方法:

stringObject.replace(regexp/substr,replacement)

參數 描述
regexp/substr

必需。規定子字符串或要替換的模式的 RegExp 對象。

請注意,如果該值是一個字符串,則將它作爲要檢索的直接量文本模式,而不是首先被轉換爲 RegExp 對象。

replacement 必需。一個字符串值。規定了替換文本或生成替換文本的函數。

replace中的第一個參數是正則表達式時,第二個參數可以是一個函數,可以接受多個參數。其中,第一個參數是捕捉到的內容,第二個參數是捕捉到的組匹配(有多少個組匹配,就有多少個對應的參數)。此外,最後還可以添加兩個參數,倒數第二個參數是捕捉到的內容在整個字符串中的位置(比如從第五個位置開始),最後一個參數是原字符串。下面是一個網頁模板替換的例子。

例:

1.var str = "kkk_yyy_hhh";       

字符串匹配沒有正則組匹配

str.replace(''_",function(_,a,b,c){
   console.log(_,a,b,c)        // _     3   
kkk_yyy_hhh  undefined
})

2.var str = "kkk_yyy_hhh";       

正則匹配 沒有正則組匹配

str.replace(/_/g,function(_,a,b,c){
   console.log(_,a,b,c)        // _     3     kkk_yyy_hhh undefined          _ 7 kkk_yyy_hhh undefined
})

 

3.var str = "kkk_yyy_hhh";       

正則匹配 有正則組匹配

str.replace(/_(\w)/g,function(_,a,b,c){
   console.log(_,a,b,c)        // _y     y       3     kkk_yyy_hhh         _h   h   7    kkk_yyy_hhh
}) 

查看第三個案例,既然能拿到_y和y兩個值就能實現將   “連字符字符串”  轉化爲  “駝峯命名字符串”

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章