我试图将字符串中每个单词的第一个字母大写。我的代码如下:
function LetterCapitalize(str)
{
var words=str.split(" ");
var newArray=[];
for(i=0; i<words.length; i++)
{
var aWord=words[i];
//this line below doesn't work...don't know why!
aWord[0]=aWord[0].toUpperCase();
newArray.push(aWord);
};
newArray.join(" ");
return newArray;
};
所以我看到的问题是,当我尝试将 aWord[0] 分配给它的大写值时,分配没有发生?我该如何修改它以便进行分配?
附言。我知道有一种正则表达式方法可以一举做到这一点,但我几天前才开始使用 javascript,还没有到那一步!因此,非常感谢任何不涉及正则表达式的提示
最佳答案
字符串不可变,所以这不会做任何事情:
aWord[0]=aWord[0].toUpperCase();
相反,您必须创建一个新 字符串:
aWord = aWord.substring(0, 1).toUpperCase() + aWord.substring(1);
// or:
aWord = aWord.charAt(0).toUpperCase() + aWord.substring(1);
// or on *most* engines (all modern ones):
aWord = aWord[0].toUpperCase() + aWord.substring(1);
关于javascript - string[0].toUpperCase() 没有返回预期结果?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33143394/