我卡在了这个编码挑战上:脊柱病例。基本上我不知道如何使最后一个检查执行。
这是最后一个检查:
我知道最后一个
提前感谢!
这是最后一个检查:
spinalCase("AllThe-small Things") 应该返回 "all-the-small-things"
这是我的代码:function spinalCase(str) {
var outputString,
newstr,
pattern1 = new RegExp(/[_\s]/, 'g'),
pattern2 = new RegExp(/(?=[A-Z])/, 'g'),
stringTest1 = pattern1.test(str),
stringTest2 = pattern2.test(str);
if(stringTest1) {
outputString = str.replace(pattern1, '-');
newstr = outputString.toLowerCase();
} else if(stringTest2) {
str.split(/(?=[A-Z])/).join(' ');
outputString = str.replace(pattern2, '-');
newstr = outputString.toLowerCase();
} else if (stringTest1 && stringTest2){
outputString = str.replace(pattern1, '-');
outputString = str.replace(pattern2, '-');
newstr = outputString.toLowerCase();
}
return newstr;
}
我知道最后一个
else if
条件应该放在第一位,但我语法没写对。提前感谢!
replace
来检查第一个表达式 - 它检查任何大写字符A-Z
,但(?!^)
和$1
是什么?我猜您将它们包装在(...)
中使它们成为表达式,因为如果您没有这样做,解释器可能会返回错误? - Antonio Pavicevac-Ortiz.replace(/[_\s]+(?=[a-zA-Z])/g, '-')
首先检查_
和空格字符,然后似乎你在说让我们连接(?=[a-zA-Z])/g, '-')
,这是什么意思。提前致谢! - Antonio Pavicevac-Ortiz