2016-07-06 179 views
0

嗨我正在尝试使用javascript来大写一个句子的单词。例如如何在字符串中使用Javascirpt大写字母的第一个字母

var input = "I am not bad with javascript." 
var output = "I Am Not Bad With Javascript." 

我有以下的代码,我想不通为什么我的更换没有工作..谢谢你

var loop = function(collection, callback){ 
    // ultimate side-effects function 
    for (var i = 0; i < collection.length; i++){ 
     callback(collection[i]); 
    } 
}; 

    var capitalizeFirstLetters = function(string) { 
     // have a new string 
     // split the string into substring 
     // use the loop function to find the "space"and CAP letter after 
     var newString = []; 
     var subString = string.split(' '); 
     loop(subString, function(word){ 
     subString.replace(word[0], word[0].toUpperCase()); 
     return newString.push(subString); 
     }) 
     return newString.join(' '); 
    } 

谢谢

+3

有趣的事实,你可以做到这一点在CSS'文本转换:大写;'。我知道你是一个特定于JavaScript的问题,但知道你有时不需要编写字符串操作函数是不是很好? – aardrian

+0

如果您使用Lodash,则可以使用[this](http://stackoverflow.com/a/38084493/5743988)。您所指的字符串格式称为“标题大小写”或“开始大小写” – 4castle

回答

0

这里这应该工作

function titleCase(str) { 
 
    var splitStr = str.toLowerCase().split(' '); 
 
    for (var i = 0; i < splitStr.length; i++) { 
 
     // You do not need to check if i is larger than splitStr length, as your for does that for you 
 
     // Assign it back to the array 
 
     splitStr[i] = splitStr[i].charAt(0).toUpperCase() + splitStr[i].substring(1);  
 
    } 
 
    // Directly return the joined string 
 
    return splitStr.join(' '); 
 
} 
 

 
document.write(titleCase("I'm a little tea pot"));

0

你可以尝试这样的事:

var input = "I am not bad with javascript." 
input = input.split(" ") 
      .map(function(item){ 
       return item[0].toUpper()+item.slice(1); 
      }) 
      .join(" "); 

var input = "I am not bad with javascript." 
 
input = input.split(" ") 
 
      .map(function(item){ 
 
       return item[0].toUpperCase()+item.slice(1); 
 
      }).join(" "); 
 
alert(input);

相关问题