Javascript:将每个单词的开头大写。

时间:2013-08-14 21:23:04

标签: javascript

这里的函数假设将每个单词的开头大写。我知道还有其他更简单的解决方案,但我有点固执,为什么这个解决方案不能正常工作。每次回来之后,它都会出现“未定义”。

function LetterCapitalize(str) { 

  var c = str[0].charCodeAt(0);
  var letter;
  var result = "";

  if( (c >= "a".charCodeAt(0) && c <="z".charCodeAt(0)) || (c >= "A".charCodeAt(0) && c <="Z".charCodeAt(0)))
  {
    result = str[0].toUpperCase()
  }
  else
  {
    result += str[i];
  }

  for(var i=1; i<=str.length; i++)
  {
        if(str[i-1] == " ")
        {
            letter = str[i].toUpperCase()
            result += letter;
        }
        else
        {
            result += str[i];
        }
  }
       return result; 
}

1 个答案:

答案 0 :(得分:0)

如果你改变了

for(var i = 1; i <= str.length; i++)

for(var i = 1; i < str.length; i++)

它会像你期望的那样工作。就目前而言,您将在字符串中索引一个额外的时间,该时间将返回undefined。

第一个if / else语句也可以完全抛弃。对于i is undefined

,else语句仍然是语法错误