字符串 驼峰 蛇形

驼峰 转 蛇形

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"

时间: 2024-10-22 01:53:49

字符串 驼峰 蛇形的相关文章

prototype.js 源码解读(02)

如果你想研究一些比较大型的js框架的源码的话,本人建议你从其最初的版本开始研读,因为最初的版本东西少,易于研究,而后的版本基本都是在其基础上不断扩充罢了,所以,接下来我不准备完全解读prototype.js的源码了,而是拿它一些常见的API来解读. //定时器类,比起window.setInterval函数,该类能够使得回调函数不会被并发调用 var PeriodicalExecuter = Class.create();//Class类创建的定时器类 PeriodicalExecuter.pr

算法积累(字符串转换驼峰,判断一个字符串中那个字母出现次数最多,并且出现了几次)

因为算法比较烂,所以想做一下这方面的积累. 尽量能够每天学习一个新算法吧.(不过估计很悬) 好吧,今天第一个是字符串转换驼峰 直接上代码 var str = 'toupper-case'; var arr = str.split('-'); //toupper,case for (var i = 1; i < arr.length; i++) { //把除了第一个数组后面的数组的第一个值设置为大写然后大写字母和去掉第一个字符的剩下的字符进行拼合 arr[i] = arr[i].charAt(0)

javascript字符串 转 驼峰字符

字符串  转  驼峰字符 1 <script type="text/javascript"> 2 3 var str = 'peng-hui-datou'; 4 function a(str){ 5 var Array = str.split('-'); 6 for(var i=0;i<Array.length;i++){ 7 Array[i] = Array[i].charAt(0).toUpperCase() + Array[i].substring(1); 8

题3:字符串转成驼峰

// 题3:字符串转成驼峰: 利用数组和字符串的方法 var str='border-bottom-color'; function ad(str){ var res=str.split('-'); for(var i=1;i<res.length;i++){ console.log(typeof res[i])//string res[i]=res[i].slice(0,1).toUpperCase()+res[i].substring(1); } return res.join(''); }

写一个将字符串转成驼峰命名的方法

实现一个方法将一个字符串转为驼峰命名法.例如border-bottom-color转为borderBottomColor 所用方法:toUpperCase()方法. 第一种思路:将字符串使用split方法以-分割,然后把第一项之后的每一个的首字母转换为大写. var str="border-bottom-color"; function stringToCamel(str){ var temp=str.split("-"); for(var i=1;i<tem

PHP把下划线分隔命名的字符串与驼峰式命名互转

最近项目使用symfony框架,这个框架对数据库的操作在这个团队里使用的是ORM进行操作,说实话使用ORM的开发效率和运行效率不一定高多少,到是它的实体命名和现有数据库字段的命名不太一样,ORM实体属性命名是驼峰式的,数据库字段是下划线分隔,这就产生了字段映射的过程.当碰到需要手动写实体必须的数组时,字段映射是一件很头疼的事情,尤其是字段比较多的时候,写到你想吐.到这就产生一个问题就是把以下划线分隔的命名字段转换成驼峰式命名.小弟我也很懒,在网上找了半天,也没找到一个具体的PHP Demo,有的

驼峰字符串转换成下划线样式

// 驼峰字符串转换成下划线样式 $str = 'openAPI'; echo $str."<BR>"; echo strtolower(preg_replace('/((?<=[a-z])(?=[A-Z]))/', '_', $str)).'<br>';//open_ap 正则表达式补充: ?: 不想被捕获的时候使用 可以提高程序执行速度 $string = 'April 15, 2003'; $pattern = '/(\w+) (\d+), (\d+

【原创】字符串工具类--驼峰法与下划线法互转

在实际项目开发中,会碰到这样的问题,数据库表结构设计好了,可实体类还没相应地弄出来.实体类的属性命名方法一般是驼峰法,而数据库中的表字段命名方法用的是下划线法.如果表的字段非常多,我们根据设计好的数据库字段再手动敲写一遍驼峰法的属性,这有点费时了.如何迅速地把数据库中的表字段变成我们所需要的驼峰式的属性呢? 解决方法有二,一是通过文本编辑工具,如EditPlus,Notepad++等,利用它们携带的正则替换功能来迅速实现:二是通过自己编写工具类来实现.至于第一种方法操作技巧,不在这边赘述.第二种

使用PHP把下划线分隔命名的字符串 转换成驼峰式命名方式 , 把下划线后面的第一个字母变成大写

最近项目使用symfony框架,这个框架对数据库的操作在这个团队里使用的是ORM进行操作,说实话使用ORM的开发效率和运行效率不一定高多少,到是它的实体命名和现有数据库字段的命名不太一样,ORM实体属性命名是驼峰式的,数据库字段是下划线分隔,这就产生了字段映射的过程.当碰到需要手动写实体必须的数组时,字段映射是一件很头疼的事情,尤其是字段比较多的时候,写到你想吐.到这就产生一个问题就是把以下划线分隔的命名字段转换成驼峰式命名.小弟我也很懒,在网上找了半天,也没找到一个具体的PHP Demo,有的