Вы должны создать новую строку, потому что струны в JavaScript неизменны:
Сначала получить каждое слово, отделенные:
var arrayOfstrings = s.split(" ");
После этого вы можете обработать каждую строку как есть собственное слово
Fancy путь:
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];
}
Конечно, все это может быть сделано в 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(" ");
http://stackoverflow.com/questions/2332811/capitalize-words-in-string – lastr2d2
Строк неизменны в JavaScript. –
@ RaymondChen, как уверенность BOD? :) –