检查字符串是否符合要求

函数generateHashtag(str); 传递一个必须符合以下标准的字符串:

  • 如果最终结果超过140个字符,它必须返回false。
  • 如果输入是一个空字符串,它必须返回false。
  • 它必须以标签(#)开头。
  • 所有的单词必须首字母大写。
  • 输入输出示例:

    “你好,谢谢你尝试我的Kata”=>“#HelloThereThanksForTryingMyKata”

    “Hello World”=>“#HelloWorld”

    这是我的代码到目前为止:

    function generateHashtag (str) {
        if (!str) {
            return false;
        } else {
            var los = str.toLowerCase();
            var res = los.replace(/b./g, function(m){ return m.toUpperCase(); });
        } 
    
        if ( res.charAt( 0 ) != '#' ) { 
            res = "# " + res;
        } else {
            res = "" + res;
        }
    
        if (res.length > 140) {
            return false; 
        } else {
            return res;
        }
    }
    

    这是来自codewar.com网站的编码挑战。 我在那里收到以下消息Test didn't pass: Unknown error 。 它适用于js小提琴链接到js小提琴


    这是否工作?

    function generateHashtag (str) {
      if(!str || str.length == 0 || (str.replace(/([^a-zA-Zs])/g, "").length + 1) > 140)
        return false;
    
      var finalString = "";
      str = str.replace(/([^a-zA-Zs])/g, "").trim().toLowerCase().split(" ");
    
      for(i in str)
        finalString += str[i].charAt(0).toUpperCase() + str[i].slice(1);
    
      return "#" + finalString;
    }
    

    https://jsfiddle.net/c0m6bcq6/1/

    链接地址: http://www.djcxy.com/p/2881.html

    上一篇: check to see if string matches requirements

    下一篇: compulsive binding of this with functions