算法中级:短线连接格式
在这道题目中,我们需要写一个函数,把一个字符串转换为“短线连接格式”。短线连接格式的意思是,所有字母都是小写,且用-连接。比如,对于Hello World,应该转换为hello-world;对于I love_Javascript-VeryMuch,应该转换为i-love-javascript-very-much。
function spinalCase(str) {
return str.trim().split(/\s|_|(?=[A-Z])/).join('-').toLowerCase();
}
spinalCase('This Is Spinal Tap');
-
trim():去除头尾空格
-
?=[A-Z]:表示什么后面以大写字母开始。
此为正则表达式中的断言,只能匹配一个位置,例如(?=.*[a-z])\d+,匹配为以a-z任意一个字母开头的数字,例如d2,a3,b4。例如(?=中国)人,就只匹配中国人的人字。