字符串 驼峰 蛇形

驼峰 转 蛇形

CamelCase.camelize

 

 蛇形驼峰

1. Rails的的ActiveSupport 加上下划线为以下几点:

class String
 def underscore
 self.gsub(/::/, '/').
 gsub(/([A-Z]+)([A-Z][a-z])/,'\1_\2').
 gsub(/([a-z\d])([A-Z])/,'\1_\2').
 tr("-", "_").
 downcase
 end
end

那么你可以做有趣的东西:

"CamelCase".underscore



2. 一个班轮ruby

class String
 # ruby mutation methods have the expectation to return self if a mutation occurred, nil otherwise. (see  CodeGo.net 
 def to_underscore!
  gsub!(/(.)([A-Z])/,'\1_\2')
  downcase!
 end

 def to_underscore
  dup.tap { |s| s.to_underscore! }
 end
end

所以"SomeCamelCase".to_underscore # =>"some_camel_case"

3. 下面是Rails如何做的:

 def underscore(camel_cased_word)
  camel_cased_word.to_s.gsub(/::/, '/').
  gsub(/([A-Z]+)([A-Z][a-z])/,'\1_\2').
  gsub(/([a-z\d])([A-Z])/,'\1_\2').
  tr("-", "_").
  downcase
 end



4. 接收器转换成蛇的情况下: 这是DataMapper的和Merb的支持库。 (

def snake_case
 return downcase if match(/\A[A-Z]+\z/)
 gsub(/([A-Z]+)([A-Z][a-z])/, '\1_\2').
 gsub(/([a-z])([A-Z])/, '\1_\2').
 downcase
end

"FooBar".snake_case   #=> "foo_bar"
"HeadlineCNNNews".snake_case #=> "headline_cnn_news"
"CNN".snake_case    #=> "cnn"

转载于:https://www.cnblogs.com/qinyan20/p/4211635.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值