--- id: a103376db3ba46b2d50db289 challengeType: 5 forumTopicId: 16078 title: 短线连接格式 --- ## Description
在这道题目中,我们需要写一个函数,把一个字符串转换为“短线连接格式”。短线连接格式的意思是,所有字母都是小写,且用-连接。比如,对于Hello World,应该转换为hello-world;对于I love_Javascript-VeryMuch,应该转换为i-love-javascript-very-much。 如果你遇到了问题,请点击帮助
## Instructions
## Tests
```yml tests: - text: "spinalCase('This Is Spinal Tap')应该返回'this-is-spinal-tap'。" testString: assert.deepEqual(spinalCase("This Is Spinal Tap"), "this-is-spinal-tap"); - text: "spinalCase('thisIsSpinalTap')应该返回'this-is-spinal-tap'。" testString: assert.strictEqual(spinalCase('thisIsSpinalTap'), "this-is-spinal-tap"); - text: "spinalCase('The_Andy_Griffith_Show')应该返回'the-andy-griffith-show'。" testString: assert.strictEqual(spinalCase("The_Andy_Griffith_Show"), "the-andy-griffith-show"); - text: "spinalCase('Teletubbies say Eh-oh')应该返回'teletubbies-say-eh-oh'。" testString: assert.strictEqual(spinalCase("Teletubbies say Eh-oh"), "teletubbies-say-eh-oh"); - text: "spinalCase('AllThe-small Things')应该返回'all-the-small-things'。" testString: assert.strictEqual(spinalCase("AllThe-small Things"), "all-the-small-things"); ```
## Challenge Seed
```js function spinalCase(str) { // "It's such a fine line between stupid, and clever." // --David St. Hubbins return str; } spinalCase('This Is Spinal Tap'); ```
## Solution
```js function spinalCase(str) { // "It's such a fine line between stupid, and clever." // --David St. Hubbins str = str.replace(/([a-z](?=[A-Z]))/g, '$1 '); return str.toLowerCase().replace(/\ |\_/g, '-'); } ```