你必须创建一个新的字符串,因为在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];
}
当然,所有这些都可以在一个for循环来完成封顶所有这些,一起放回:
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(" ");
来源
2014-09-19 02:20:34
Jay
http://stackoverflow.com/questions/2332811/capitalize-words-in-string – lastr2d2 2014-09-19 02:17:16
字符串是在JavaScript中不可变的。 – 2014-09-19 02:20:30
@RaymondChen喜欢BOD的确定性? :) – 2014-09-19 02:29:18