Câu trả lời:
kiểm tra squish
phương pháp Rails :
some_string.strip.gsub(/\s+/, " ")
chính xác những gì squish làm.
squish
Để minh họa Rubys tích hợp trong bóp :
string.gsub("\n", ' ').squeeze(' ')
squeeze(' ')
chỉ bóp nghẹt khoảng trống. "Squeeze my application's copy".squeeze(' ') => "Squeeze my application's copy"
.
regex này sẽ thay thế trường hợp của 1 hoặc nhiều khoảng trắng bằng 1 khoảng trắng, ps \s
sẽ thay thế tất cả các ký tự khoảng trắng bao gồm \s\t\r\n\f
:
a_string.gsub!(/\s+/, ' ')
Tương tự đối với chỉ ký tự xuống dòng
str.gsub!(/\n/, " ")
Đầu tiên thay thế tất cả \n
bằng khoảng trắng, sau đó sử dụng regex xóa nhiều khoảng trắng.
Sử dụng Chuỗi # gsub :
s = "Hello, my\n name is Michael."
s.gsub(/\s+/, " ")
"Hello,\nMy name is Michael"
. Lý tưởng nhất là bạn sẽ muốn có một không gian, nơi có một\n
Use squish
currency = " XCD"
str = currency.squish
str = "XCD" #=> "XCD"
Bạn chỉ có thể thêm squish
phương thức (và không có gì khác) vào Ruby bằng cách chỉ thêm Ruby Facet này:
https://github.com/rubyworks/facets/blob/master/lib/core/facets/string/squish.rb
require 'facets/string/squish'
Sau đó sử dụng
"my \n string".squish #=> "my string"
Không yêu cầu Rails.