2012-11-24 33 views

回答

5

使用正則表達式替換:

var str:String = "the quick brown fox jumped over the lazy dog."; 
str = str.replace(/(^[a-z]|\s[a-z])/g, function(){ return arguments[1].toUpperCase(); }); 
+0

如何把它變成一個功能?我嘗試了以下不起作用:'function capitalizeText(str:String)str.replace(/(^ [az] | \ s [az])/ g) 返回參數[1] .toUpperCase() } ' – Uli

+1

這將是類似於: 'function capitalize(str:String):String {0}返回str.replace(/(^ [az] | \ s [az])/ g,function():String {return arguments [1] .toUpperCase();}); }' 'trace(this.capitalize(「快速的棕色狐狸跳過懶狗」));' 您需要內部函數來實際地大寫匹配從正則表達式(在這種情況下是所有帶空格或字符串的字母都在它的前面) 所以,如果您需要一個函數來首字母大寫,那麼您總共需要兩個函數。 –

1

像這樣的東西應該工作:

function ucfirst(str:String):String { 
    var words:Array = str.split(" "); 
    for(var i in words) { 
     words[i] = String(words[i]).charAt(0).toUpperCase() + String(words[i]).substr(1, String(words[i]).length); 
    } 
    return words.join(" "); 
} 
相關問題