这里的函数假设将每个单词的开头大写。我知道还有其他更简单的解决方案,但我有点固执,为什么这个解决方案不能正常工作。每次回来之后,它都会出现“未定义”。
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;
}
答案 0 :(得分:0)
如果你改变了
for(var i = 1; i <= str.length; i++)
到
for(var i = 1; i < str.length; i++)
它会像你期望的那样工作。就目前而言,您将在字符串中索引一个额外的时间,该时间将返回undefined。
第一个if / else语句也可以完全抛弃。对于i is undefined