javascript - string[0].toUpperCase() 没有返回预期结果?

标签 javascript

我试图将字符串中每个单词的第一个字母大写。我的代码如下:

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/

相关文章:

javascript - 使用预定义索引进行多次替换

javascript - 模拟 ionic 应用程序时无法使用 http 服务连接到服务器

javascript - 如何使用 JavaScript 导出 Excel 文件?

javascript - 使用带有变换属性的缩放时定位 sibling

javascript - 如何判断浏览器是否支持 &lt;input type ='date' >

javascript - 每条消息更改聊天框中 div 的背景颜色

javascript - 禁用单击 Fotorama slider 时的暂停功能

javascript - React 拒绝渲染一个 div

javascript - 数组拼接正在创建一个空白数组

javascript - 无效的 HTTP 响应代码 ‘0’