使用Ruby 2.1.3和Rails 4.1.6。 我一直在使用.titleize来清理一些用户输入,例如
'new york'.titleize
=> "New York"
但是,如果不需要,标题化也可以通过下移来打破正确的用户输入:
'New York, NY'.titleize
=> "New York, Ny"
是否有一种干净的方式来标题化而没有任何下降?
答案 0 :(得分:2)
如果您希望混合大小写的单词,并希望将它们混合起来,我会这样:
def titleize_without_downcasing(string)
string.gsub(/(\w|')(\w*)/) { $1.upcase + $2 }
end
titleize_without_downcasing('new york, NY, UsA')
#=> 'New York, NY, UsA'
titleize_without_downcasing("doctor's")
#=> "Doctor's"
答案 1 :(得分:0)
def titlize(str)
r = str.split.map { |word| word.size > 2 ? word.titleize : word.capitalize }
r.join(" ")
end