题目:
将字符串转换为 spinal case。Spinal case 是 all-lowercase-words-joined-by-dashes 这种形式的,也就是以连字符连接所有小写单词。
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”。
思路:
给出的四个例子,分别可以看成:空格换成-,大小写中间加-,下划线换成-,空格换成-。全部的例子都要将字符串换成小写。
这里明显用正则会好做很多,两个函数:filter和toLowerCase
代码:
<script type="text/javascript">
function spinalCase(str) {
// "It's such a fine line between stupid, and clever."
return str.replace(/\s|_/g, '-').replace(/([a-z])([A-Z])/g, '$1-$2').toLowerCase();
}
spinalCase('thisIsSpinalTap');
</script>
正则表达式分为两段来写,第一段替换掉空格和下划线,第二次在大小写中间加入下划线,$1表示正则匹配到的第一个段,最后将所有字符串转化为小写。
ok!!!
———————
作者:wangmc0827
原文:https://blog.csdn.net/wangmc0827/article/details/72677759