Risposte:
controlla il squish
metodo Rails :
some_string.strip.gsub(/\s+/, " ")
esattamente ciò che fa squish.
squish
Per illustrare Rubys costruito in squeeze :
string.gsub("\n", ' ').squeeze(' ')
squeeze(' ')
stringe solo gli spazi. "Squeeze my application's copy".squeeze(' ') => "Squeeze my application's copy"
.
questa regex sostituirà l'istanza di 1 o più spazi bianchi con 1 spazio bianco, ps \s
sostituirà tutti i caratteri dello spazio bianco che include \s\t\r\n\f
:
a_string.gsub!(/\s+/, ' ')
Allo stesso modo per il solo ritorno a capo
str.gsub!(/\n/, " ")
Prima sostituisci tutto \n
con uno spazio bianco, quindi usa la regex rimuovi più spazi bianchi.
Usa la stringa # gsub :
s = "Hello, my\n name is Michael."
s.gsub(/\s+/, " ")
"Hello,\nMy name is Michael"
. Idealmente vorresti uno spazio dove ci sia un\n
Puoi aggiungere solo il squish
metodo (e nient'altro) a Ruby includendo solo questo Ruby Facet:
https://github.com/rubyworks/facets/blob/master/lib/core/facets/string/squish.rb
require 'facets/string/squish'
Quindi usa
"my \n string".squish #=> "my string"
Non richiede Rails.