频道栏目
首页 > 资讯 > HTML/CSS > 正文

FreecodeCamp题目之中级算法12(SpinalTapCase)

17-08-28        来源:[db:作者]  
收藏   我要投稿

FreecodeCamp题目之中级算法12(SpinalTapCase),将字符串转换为 spinal case。Spinal case 是 all-lowercase-words-joined-by-dashes 这种形式的,也就是以连字符连接所有小写单词。

如果你被卡住了,记得开大招 Read-Search-Ask。尝试与他人结伴编程、编写你自己的代码。

这是一些对你有帮助的资源:

RegExp
String.replace()
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"。同1、3
思路:解决方法有很多种,我认为主要的难点在于第二个例子,跟其他的例子格式比较不同,所以其中一个想法就是单独筛选出2例,插入空格,变成跟第一个例子相似的格式,然后就能方便进行替换了。代码如下:
function spinalCase(str) {
function replacer(match){
return ' ' + match;
}
if (str[0] <= 'z'&& str[0] >= 'a'){
str =str.replace(/[A-Z]+/g,replacer);
}
str = str.replace(/\s/g,'-').replace(/_/g,'-').toLowerCase();
return str;
}
spinalCase('This Is Spinal Tap');

①replacer方法服务于2例,能够在大写字母前加入空格。②if语句筛选出2例,然后添加空格,格式就变成:this Is Spinal Tap。③之后进行整体替换,第一个replace将空格替换成‘-’,第二个replace将‘_’替换成‘-’,最后将大写换成小写,结束。
相关TAG标签
上一篇:DockerToolbox使用小技巧-复制粘贴-批量处理-循环语句
下一篇:谈一谈Java8的函数式编程 (一)
相关文章
图文推荐

关于我们 | 联系我们 | 广告服务 | 投资合作 | 版权申明 | 在线帮助 | 网站地图 | 作品发布 | Vip技术培训 | 举报中心

版权所有: 红黑联盟--致力于做实用的IT技术学习网站