神刀安全网

FreeCodeCamp筆記之:Spinal Tap Case


题目

Spinal Tap Case将字符串转换为 spinal case。Spinal case 是 all-lowercase-words-joined-by-dashes 这种形式的,也就是以连字符连接所有小写单词。如果你被卡住了,记得开大招 Read-Search-Ask。尝试与他人结伴编程、编写你自己的代码。这是一些对你有帮助的资源:
RegExp
String.replace()

思路

1.意思是将所有的单词,中首字母为大写的转成小写,然后用 – 拼接起来;
2.第一反应的做法是 将所有单词拆分成一个数组,针对数组中的每个值转换一次小写,然后在加上 – 拼接成一个字符串;
3.but,我低估了题目的恶心;因为看到了这个:

FreeCodeCamp筆記之:Spinal Tap Case

image.png

  • 居然还有连在一起的,下划线分开的,空格分开但是存在 – 线的….。

4.于是乎,要改变思路了,看到题目又提示了 String.replace() ,于是乎再一次狠命的深入学习一次这个函数

  1. 主要是处理三种情况:空格 、下划线 、大写字母,用到正则表达式;
  2. 空格、下划线 正则表达式的表示: //s|_/g ;
  3. 思路是先将空格、下划线转成 -,使用replace;
  4. 第二步对于单词之间没有分开的,直接将大写字母和小写字母中间增加 – ,同样是用replace;
  5. 将所有大写字母转为小写字母;

解答

function spinalCase(str) {   // "It's such a fine line between stupid, and clever."   // --David St. Hubbins   return str.replace(//s|_/g,"-")  //将 下划线和空格 替换为 -              .replace(/([a-z])([A-Z])/g,"$1-$2")  //大小写字母之间加上- 分隔             .toLowerCase();   //所有字母转成小写   } spinalCase('This Is Spinal Tap'); 

转载本站任何文章请注明:转载至神刀安全网,谢谢神刀安全网 » FreeCodeCamp筆記之:Spinal Tap Case

分享到:更多 ()

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址