rug*_*ert 66 ruby ruby-on-rails ruby-on-rails-3
这适用于任何包含空格的字符串
str.downcase.tr!(" ", "_")
Run Code Online (Sandbox Code Playgroud)
但是没有空格的字符串会被删除
所以"新学校"会变成"new_school",但"颜色"会变成"",什么都没有!
Sam*_*dhe 98
与空间
str = "New School"
str.parameterize.underscore
=> "new_school"
Run Code Online (Sandbox Code Playgroud)
没有空间
str = "school"
str.parameterize.underscore
=> "school"
Run Code Online (Sandbox Code Playgroud)
编辑: - 我们也可以将'_'作为参数传递给参数化.
与空间
str = "New School"
str.parameterize('_')
=> "new_school"
Run Code Online (Sandbox Code Playgroud)
没有空间
str = "school"
str.parameterize('_')
=> "school"
Run Code Online (Sandbox Code Playgroud)
Zac*_* Xu 36
如果您对以蛇形式获取字符串感兴趣,那么建议的解决方案不太有用,因为您可能会得到连接的下划线和开始/尾随下划线.
例如
1.9.3-p0 :010 > str= " John Smith Beer "
=> " John Smith Beer "
1.9.3-p0 :011 > str.downcase.tr(" ", "_")
=> "__john___smith_beer_"
Run Code Online (Sandbox Code Playgroud)
以下解决方案可以更好地工作:
1.9.3-p0 :010 > str= " John Smith Beer "
=> " John Smith Beer "
1.9.3-p0 :012 > str.squish.downcase.tr(" ","_")
=> "john_smith_beer"
Run Code Online (Sandbox Code Playgroud)
squish是Rails提供的String方法
the*_*guy 11
如果您使用的是5号及以上的导轨,则可以实现相同的功能
str.parameterize(separator: '_')
Run Code Online (Sandbox Code Playgroud)
老问题,但......
对于所有空白,你可能想要更像这样的东西:
"hey\t there world".gsub(/\s+/, '_') # hey_there_world
Run Code Online (Sandbox Code Playgroud)
这会获得制表符和新行以及空格并替换为单个行_
.
可以修改正则表达式以满足您的需求.例如:
"hey\t there world".gsub(/\s/, '_') # hey__there___world
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
44719 次 |
最近记录: |