--- id: a103376db3ba46b2d50db289 title: Spinal Tap Case isRequired: true challengeType: 5 --- ## Description
Convert a string to spinal case. Spinal case is all-lowercase-words-joined-by-dashes. Remember to use Read-Search-Ask if you get stuck. Try to pair program. Write your own code.
## Instructions
## Tests
```yml tests: - text: spinalCase("This Is Spinal Tap") should return "this-is-spinal-tap". testString: assert.deepEqual(spinalCase("This Is Spinal Tap"), "this-is-spinal-tap", 'spinalCase("This Is Spinal Tap") should return "this-is-spinal-tap".'); - text: spinalCase("thisIsSpinalTap") should return "this-is-spinal-tap". testString: assert.strictEqual(spinalCase('thisIsSpinalTap'), "this-is-spinal-tap", 'spinalCase("thisIsSpinalTap") should return "this-is-spinal-tap".'); - text: spinalCase("The_Andy_Griffith_Show") should return "the-andy-griffith-show". testString: assert.strictEqual(spinalCase("The_Andy_Griffith_Show"), "the-andy-griffith-show", 'spinalCase("The_Andy_Griffith_Show") should return "the-andy-griffith-show".'); - text: spinalCase("Teletubbies say Eh-oh") should return "teletubbies-say-eh-oh". testString: assert.strictEqual(spinalCase("Teletubbies say Eh-oh"), "teletubbies-say-eh-oh", 'spinalCase("Teletubbies say Eh-oh") should return "teletubbies-say-eh-oh".'); - text: spinalCase("AllThe-small Things") should return "all-the-small-things". testString: assert.strictEqual(spinalCase("AllThe-small Things"), "all-the-small-things", 'spinalCase("AllThe-small Things") should return "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, '-'); } ```