去除所有空白的Ruby函数是什么?我正在寻找一些类似于PHP的trim()?
当前回答
我试图这样做,因为我想使用记录“标题”作为视图中的id,但标题有空格。
解决方案是:
record.value.delete(' ') # Foo Bar -> FooBar
其他回答
我个人倾向于使用.tr方法
如:
string = "this is a string to smash together"
string.tr(' ', '') # => "thisisastringtosmashtogether"
感谢@FrankScmitt指出,要删除所有空白(不仅仅是空格),你需要这样写:
string = "this is a string with tabs\t and a \nnewline"
string.tr(" \n\t", '') # => "thisisastringwithtabsandanewline"
现在说这个有点晚了,但是任何在谷歌上搜索这个页面的人都可能对这个版本感兴趣
如果你想清理一大块预先格式化的文本,用户可能以某种方式剪切和粘贴到你的应用程序,但保留单词间距,试试这个:
content = " a big nasty chunk of something
that's been pasted from a webpage or something and looks
like this
"
content.gsub(/\s+/, " ").strip
#=> "a big nasty chunk of something that's been pasted from a webpage or something and looks like this"
这里有很多建议,但当我读到你的问题和说“删除所有空白”的具体行时,我想到的是:
" a b c " => "abc"
如果这确实是需要的,你可以做这个简单的操作
wide_string = " a b c "
narrow_string = wide_string.delete(" ")
# you can pass all the different kinds
# of whitespaces that you want to remove
puts narrow_string # => "abc"
Ruby的.strip方法执行与trim()相当的PHP功能。
删除所有空白:
" leading trailing ".squeeze(' ').strip
=> "leading trailing"
@塔斯让我意识到我原来的答案连续删除重复的字母-恶心!从那以后,我改用了压缩方法,如果使用Rails框架,这种方法对这种情况更聪明。
require 'active_support/all'
" leading trailing ".squish
=> "leading trailing"
" good men ".squish
=> "good men"
引用:http://apidock.com/rails/String/squish
你可以试试这个
"Some Special Text Values".gsub(/[[:space:]]+/, "")
使用:space:删除不间断的空格和常规空格。
推荐文章
- 我如何检查如果一个变量是JavaScript字符串?
- 如何显示有两个小数点后的浮点数?
- 数组到哈希Ruby
- 在Lua中拆分字符串?
- 我如何让红宝石打印一个完整的回溯而不是截断一个?
- 如何在Python中按字母顺序排序字符串中的字母
- python: SyntaxError: EOL扫描字符串文字
- PHP子字符串提取。获取第一个'/'之前的字符串或整个字符串
- 如何使用RSpec的should_raise与任何类型的异常?
- 如何创建退出消息
- 忽略GEM,因为没有构建它的扩展
- 在Gem::Specification.reset期间未解决的规格:
- Delete_all vs destroy_all
- 双引号vs单引号
- 用any可以吗?'来检查数组是否为空?