我正在运行 Rails 2.3.2。
我如何转换"Cool"
为"cool"
? 我知道可行,但是是否有一种 Ruby / "Cool".downcase
Rails 方法可以与capitalize
, ieuncapitalize
或decapitalize
我正在运行 Rails 2.3.2。
我如何转换"Cool"
为"cool"
? 我知道可行,但是是否有一种 Ruby / "Cool".downcase
Rails 方法可以与capitalize
, ieuncapitalize
或decapitalize
还有:
"coolat_cat".camelize(:lower) # => "coolCat"
没有 的倒数capitalize
,但您可以随意滚动:
class String
def uncapitalize
self[0, 1].downcase + self[1..-1]
end
end
你也可以用一个简单的方法来做到这一点sub
:
"Cool".sub(/^[A-Z]/) {|f| f.downcase }
str = "Directly to the south"
str[0] = str[0].downcase
puts str
#=> "directly to the south"
没有大写的真正逆,但我认为underscore
接近。
"CoolCat".underscore #=> "cool_cat"
"cool_cat".capitalize #=> "Cool_cat"
"cool_cat".camelize #=> "CoolCat"
编辑: underscore
当然是相反的camelize
,不是capitalize
。
您可以使用 tap (使其适合一行):
"JonSkeet".tap { |e| e[0] = e[0].downcase } # => "jonSkeet"
有一个capitalize
被调用的逆swapcase
:
"Cool Cat".swapcase #=> "cOOL cAT"
如果你使用 Ruby Facets,你可以将第一个字母小写:
https://github.com/rubyworks/facets/blob/master/lib/core/facets/string/uppercase.rb
name = "Viru"
name = name.slice(0).downcase + name[1..(name.length)]
试试这个
'Cool'.sub(/^([A-Z])/) { $1.tr!('[A-Z]', '[a-z]') }
https://apidock.com/ruby/XSD/CodeGen/GenSupport/uncapitalize