Spinal Tap Case

将字符串转换为 spinal case。Spinal case 是 all-lowercase-words-joined-by-dashes 这种形式的,也就是以连字符连接所有小写单词。

参考资源有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"

function spinalCase(str) {
  // "It's such a fine line between stupid, and clever."
  // --David St. Hubbins
  str = str.replace(/_/g," ").replace(/([A-Z])/g," $1").replace(/^\s/,"").replace(/\s+/g,"-").toLowerCase();
  return str;
}

spinalCase('This Is Spinal Tap');



你可能感兴趣的:(JavaScript)