13

ルビーでつぶやきたい。このメソッドは Ruby on rails で見つけましたが、Ruby on rails を使用したことがないため、Ruby でのみ使用したいと考えています。

Rubyでそれを行うにはどうすればよいですか。

" foo   bar    \n   \t   boo".squish # => "foo bar boo"
4

5 に答える 5

11

次のことを試してください。

" foo   bar    \n   \t   boo".split.join(" ")
# => "foo bar boo"
于 2013-07-19T08:31:56.237 に答える
9

に追加するRailsソースsquish!からString

# File activesupport/lib/active_support/core_ext/string/filters.rb, line 16
def squish!
  gsub!(/\A[[:space:]]+/, '')
  gsub!(/[[:space:]]+\z/, '')
  gsub!(/[[:space:]]+/, ' ')
  self
end
于 2013-07-19T08:32:43.223 に答える
7
>> " foo   bar    \n   \t   boo".strip.gsub(/\s+/, ' ')
=> "foo bar boo"
于 2013-07-19T08:32:57.490 に答える
0

自分で実装できます:

def squish
  string = strip
  string.gsub!(/\s+/, ' ')
  string
end

Railsのsquish!方法を修正したものです。

于 2013-07-19T08:33:21.727 に答える