【发布时间】:2016-09-14 13:29:49
【问题描述】:
我正在尝试将句子格和驼峰格转换为脊柱格。
我可以通过在每个大写字母前添加一个空格来更改驼峰式大小写,但是当我将它应用于空格后带有大写字母的句子时,我会得到额外的间距。
到目前为止,这是我的功能:
function spinalCase(str) {
var noCamel = str.replace(/([A-Z])/g, ' $1');
var newStr = noCamel.replace(/\s|_/g, "-");
return newStr.toLowerCase();
}
spinalCase("makeThisSpinal"); //returns make-this-spinal
spinalCase("Make This Spinal"); //returns -make--this--spinal
【问题讨论】:
-
你能强调一些你希望这个函数做什么的例子吗?我将第二个示例视为您想要的东西,而不是您试图避免的东西,我感到困惑。
-
你可以用这个来代替你的var newStr - var newStr = noCamel.replace(/\s+|_+/g, "-");它将消除额外的空格,但您必须考虑“特殊情况”,例如第一个单词中的大写字母
标签: javascript regex