我想将camelCase
等骆驼案词转换为CAMEL CASE
。我尝试了here提到的方法。
@q = params[:promo].underscore.humanize.upcase
但是这使得我CAMELCASE
而不是CAMEL CASE
使用相同的结果:
@q = params[:promo].gsub(/[a-zA-Z](?=[A-Z])/, '\0 ').downcase
编辑:网址包含/camelCase
,但在使用params [:promo]时,骆驼案例未被保留且@q为camelcase
答案 0 :(得分:20)
» 'camelCase'.underscore.humanize.upcase
=> "CAMEL CASE"
答案 1 :(得分:7)
如果有人需要像CamelCase'骆驼案例'可以使用
'CamelCase'.underscore.split('_').collect{|c| c.capitalize}.join(' ')
或者' CamelCase'骆驼案件'
'CamelCase'.underscore.split('_').join(' ')
或者' CamelCase'骆驼案件'
'CamelCase'.underscore.humanize
N.B:这个解决方案是特定于rails的,如果没有ActiveSupport,它在ruby中不起作用。
答案 2 :(得分:3)
只需将自己的上部字符替换为自身前置空格,然后将所有内容都设为大写
'camelCase'.gsub(/[A-Z]/, ' \0').upcase
答案 3 :(得分:0)
'camelCase'.split(/(?=[A-Z])/).join(' ').upcase