前言
提示:文中题目引用自:https://chinese.freecodecamp.org
一、题目描述
短线连接格式将字符串转换为短线连接格式。 短线连接格式是小写单词全部小写并以破折号分隔。
二、测试数据:
spinalCase("This Is Spinal Tap") 应返回 this-is-spinal-tap。
spinalCase("thisIsSpinalTap") 应返回 this-is-spinal-tap。
spinalCase("The_Andy_Griffith_Show") 应返回 the-andy-griffith-show。
spinalCase("Teletubbies say Eh-oh") 应返回 teletubbies-say-eh-oh。
spinalCase("AllThe-small Things") 应返回 all-the-small-things。
三、解题思想:
- 先将靠在一起的单词分开,例如:AllThe-small Things转成:All The-small Things
- 使用replace函数与正则表达式,将字母间的非字母字符全部转换为“-”
- 使用toLowerCase()转为小写
四、通过代码:
function spinalCase(str) {
let arr = [];
let len = str.length;
//将单词分开,例如:AllThe-small Things转成:All The-small Things
for(let i=1;i<str.length;i++){
if((str[i-1]>='a'&&str[i-1]<='z') && (str[i]>='A'&&str[i]<='Z')){
str = str.slice(0,i) + " " + str.slice(i);
}
}
str=str.replace(/(\W|["_"])/g,'-');//将单词之间的连接符号换为“-”
str = str.toLowerCase();//转换为小写字母
return str;
}
spinalCase("AllThe-small Things")
总结
保持创造力:编程也是一种艺术