在Ruby On Rails中大写小写字母

时间:2014-11-23 03:38:56

标签: ruby-on-rails ruby ruby-on-rails-4 ruby-on-rails-3.2

Rails是否附带了一些辅助方法来将每个单词的第一个字母转换为大写?

那样

"my house is yellow"

变为

"My House Is Yellow"

4 个答案:

答案 0 :(得分:4)

ActiveSupport提供titleize功能:

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

答案 1 :(得分: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 > 

答案 2 :(得分: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"

答案 3 :(得分:0)

请小心:这是 NOT Unicode安全方法:

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

为了安全地使用Unicode,请查看unicode gem。

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

这个gem正确处理Unicode字符,但它没有titleize方法,它只有capitalize方法。