function dashes(str) {
str = str.replace(/_/g,' ').replace(/\s+/g,"-").toLowerCase();
return str;
}
//test cases
dashes("thisCakeIsDelicious");
dashes("TheBig cat was Boastful");
所需的输出分别是:“这个蛋糕很好吃”和“这个大猫是自夸的”。 如何在“TheBig”之间放置一个空格而不会与“Boastful”之前的空格相矛盾。我曾尝试正则表达式特别大写字母,但你可以看到又大又自夸开始B.将破折号放在一个字符串中
如果你使用'str.trim()。replace(...)',你可以避开前面的破折号,如果你和'\ s +'匹配,你可以避免由于空格造成单词之间的额外破折号。 –
@Jason Cust,我认为空格是相关的,但在例子中OP正在尝试'替换(/ \ s +/g,“ - ”)',所以你正确''s +'更好。另外修剪是一个好主意,我应该使用它。我刚发现一个问题,TheCakeIsALie的输出是''cake-is-alie''',在这种情况下需要用字母分隔。 – Marcs