将字符串转换为 spinal case。Spinal case 是 all-lowercase-words-joined-by-dashes 这种形式的,也就是以连字符连接所有小写单词。
用了比较奇怪的方法,不知道多次正则是不是对速度有什么影响……
str = str.replace(/\b[a-z]/g,'-$&');//先将所有小写开头的单词前加上”-“”
str = str.replace(/[A-Z]/g,function(match){return '-'+match.toLowerCase();});//大写开头也加”-“”
str = str.replace(/_/g,'');//”_“”删去
str = str.replace(/\s+/g,''); //去除多余的空格(多于一个的空格)
str = str.replace(/^-/g,'');//去除开头的”-”
str = str.replace(/-+/g,'-');//去除多余的”-”