2016-07-06 178 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);

相關問題