Javascript 如何将字符串中的第一个字母大写?

Javascript 如何将字符串中的第一个字母大写?,javascript,Javascript,我正在学习JavaScript,我对下面的代码不起作用感到失望。它仍然是一个小写的“i”。我试图将字符串中的每个字母大写(因此使用for循环),但我想停下来解决出现的问题 str = 'i ran there'; for(var i = 0; i<str.length; i++){ if(i===0){ str[i] = str[i].charAt(0).toUpperCase(); } } console.log(str); str='i run there';

我正在学习JavaScript,我对下面的代码不起作用感到失望。它仍然是一个小写的“i”。我试图将字符串中的每个字母大写(因此使用for循环),但我想停下来解决出现的问题

str = 'i ran there';

for(var i = 0; i<str.length; i++){
  if(i===0){
    str[i] = str[i].charAt(0).toUpperCase();
  }
}


console.log(str);
str='i run there';

对于(var i=0;i您必须创建一个新字符串,因为javascript中的字符串是不可变的:

首先将每个单词分开:

var arrayOfstrings = s.split(" ");
然后你可以像对待自己的单词一样对待每个字符串

奇特的方式:

 var capFirstLetter = arrayOfStrings[index].replace(/^./, function (match) {
    return match.toUpperCase();
});
它只是一个
regex
/^./
表示字符串中的第一个字符。其余字符是自解释的

或者这样:

var s = arrayOfStrings[index];
var s2 = s[0].toUpperCase()+ s.substr(0,1);
甚至是这种很蹩脚的方式

var s = arrayOfStrings[index];
var newS = "";
for(var i = 0; i < s.length; i++){
  if(i == 0) newS+= s[0].toUpperCase();
  else newS+= s[i];
}
var s=arrayOfStrings[index];
var newS=“”;
对于(变量i=0;i
当然,所有这些都可以在一个forloop中完成,以将它们全部覆盖并重新组合在一起:

 var s = "hello woorld hello world";
 var arrayOfStrings = s.split(" ");
 for(var i = 0; i < arrayOfStrings.length; i++){
    arrayOfStrings[i]= arrayOfStrings[i].replace(/^./, function(match) {return match.toUpperCase();}); 
  }
 var s2 = arrayOfStrings.join(" ");
var s=“hello woorld hello world”;
var arrayOfStrings=s.split(“”);
对于(变量i=0;i
如果我理解你的问题,你可以用类似-

var str='i run there';
var arr=str.split(“”);
var div=document.getElementById(“out”);
对于(变量i=0;i”;
}

这里的问题是javascript中的字符串是不可变的


您不能更改它们。您可以做的是使用更改创建一个新字符串。

您正在请求字符串str的索引i。因为str是一个字符串,您不能使用索引值获取字符串中的某些字符-请尝试
控制台.log(str[0])
-它将返回未定义的字符串

要完成您正在尝试执行的操作,只需在大写每个字母后添加到新字符串。示例:

str = 'i ran there';
capStr = ''

for(var i = 0; i < str.length; i++){
    if(i === 0) capStr += str.charAt(i).toUpperCase();
    else capStr += str.charAt(i);
}

console.log(capStr);
str='i run there';
capStr=''
对于(变量i=0;i
字符串在JavaScript中是不可变的。@RaymondChen就像BOD的确定性一样?:)最近是否在堆栈溢出中添加了交互式代码片段?是的,这是一个新玩具:)@Wold。它是否能够运行html和JavaScript之外的任何东西?顺便说一句,我读了这个问题,这不是他问的问题这基本上是正确的答案/我在寻找的答案。但是,如果您在for循环中(在capStr行之前)添加if/else语句来检查(i==0),那么这正是我要查找的。谢谢