vanishcode / Blog

vanishcodeのblog
https://vanishcode.com
6 stars 0 forks source link

驼峰与连字符相互转换 #72

Open vanishcode opened 6 years ago

vanishcode commented 6 years ago

比如在vue里组件标签会转换成连字符形式。之前面试两次都遇到了,然后没了sp。。

let str1 = 'marginLeft'

console.log(str1+' => '+
    str1.replace(/([A-Z])/g,function($1){
        return '-'+$1.toLowerCase()
    })
);

let str2 = 'margin-left'

console.log(str2+' => '+
    str2.replace(/-([a-z])/g,function($1){
        return $1.toUpperCase().slice(1)
    })
);

注意replace后面第二个参数可以是一个函数,用$1这样的字符代表匹配到的对象,于是我们可以在函数里面处理这个匹配项返回我们想要的结果。