// 正则方法
function test(str){
var o = /-(\w)/g;
return str.replace(o,function(a,b){
// b为子项;
return b.toUpperCase()
})
}
//字符串方法
function test2(str){
var arr = str.split("-");
//[border,left,top]
for(var i = 1,len=arr.length;i<len;i++){
arr[i] = arr[i].charAt(0).toUpperCase() +arr[i].substring(1)
}
return arr.join('')
}
var a = "border-left-top";
// alert(test(a))
alert(test2(a))
/**
* Hyphenate a camelCase string.
*
* @param {String} str
* @return {String}
*/
转驼峰命名 --参考Vue源码
function hyphenate(str) {
var hyphenateRE = /([a-z\d])([A-Z])/g;
return str.replace(hyphenateRE, '$1-$2').toLowerCase();
}
$1匹配第一个()匹配项,$2匹配第二个()
...关于正则表达式,网上资料一大片,但是很难真正看得下去。推荐一本书:正则表达式必知必会。佷薄的一本书,140页左右。上班时间在地铁上看一周也能看完。由浅入深一步步的吧正则介绍透彻。
下面还有两种(其实是一种)
var a = 'footerBall';
a.replace(/([A-Z])/g,"-$1").toLowerCase();
or
a.replacee(/([A-Z])/g,function(m){
return "-"+m.toLowerCase();
})