2014-11-23 151 views
2

Rails是否帶有一些幫助程序將每個單詞的第一個字母轉換爲大寫?在Ruby On Rails中大小寫字母大小寫

這樣

"my house is yellow" 

成爲

"My House Is Yellow" 
+0

對不起。我發現這個方法在這裏放置'一個兩個三'foUR'.split.map(&:大寫).join('') – user3678471 2014-11-23 03:47:58

+0

儘管可以大寫每個單詞,但不一定會導致正確的大寫句子。 – 2014-11-23 05:29:07

回答

4

的ActiveSupport提供了一個titleize功能:

'my house is yellow'.titleize 
=> "My House Is Yellow" 
+2

即使我的答案已被接受,這是最好的答案。但我會要求不接受我的答案並接受這個答案。 – Rubyrider 2014-11-23 04:07:00

0
1.9.3-p547 :037 > string="my house is yellow" 
=> "my house is yellow" 
1.9.3-p547 :038 > string=string.split(' ') 
=> ["my", "house", "is", "yellow"] 
1.9.3-p547 :039 > string.each do |a| 
1.9.3-p547 :040 >  a.capitalize! 
1.9.3-p547 :041?> end 
=> ["My", "House", "Is", "Yellow"] 
1.9.3-p547 :042 > string 
=> ["My", "House", "Is", "Yellow"] 
1.9.3-p547 :044 > string.join(' ') 
=> "My House Is Yellow" 
1.9.3-p547 :045 > 
0

沒有做,在一個命令沒有明確的方法。但你可以嘗試以下方法。

"my house is yellow".gsub(/[A-Za-z']+/,&:capitalize) 
=> "My House Is Yellow" 
"my house is yellow".split.map { |i| i.capitalize }.join(' ') 
=> "My House Is Yello" 
+0

「我的房子是黃色的」.gsub(/ [A-Za-z'] + /,&:大寫)我不明白這個 – user3678471 2014-11-23 04:03:56

+0

哦,這是正則表達式的方式。 :) – Rubyrider 2014-11-23 04:05:45

+0

我明白Rubyrider謝謝 – user3678471 2014-11-23 04:06:52

0

只是要carful:這是統一安全的方法:

'привет, мир!'.titleize 
"привет, мир!" 

爲了統一安全請大家看看在unicode寶石。

Unicode.capitalize('привет, мир!') 
"Привет, мир!" 

這種寶石能夠正確處理Unicode字符,但它不具有titleize方法,它只有capitalize方法。