特定のユーザ定義文字の文字列を取り除くRuby/Rails関数はありますか?私は引用符の私の文字列を削除したい場合たとえば、「...テキスト...」空白以外の文字のストリップ方法?
http://api.rubyonrails.org/classes/ActiveSupport/Multibyte/Chars.html#M000942
特定のユーザ定義文字の文字列を取り除くRuby/Rails関数はありますか?私は引用符の私の文字列を削除したい場合たとえば、「...テキスト...」空白以外の文字のストリップ方法?
http://api.rubyonrails.org/classes/ActiveSupport/Multibyte/Chars.html#M000942
あなたは空白の文字列として、第2引数でTRを使用することができます。たとえば、
%("... text... ").tr('"', '')
すべての二重引用符が削除されます。
この機能を使用して入力または出力をサニタイズする場合は、SQLインジェクションまたはクロスサイトスクリプティング攻撃を防止するには効果がありません。 HTMLの場合は、gem sanitizeまたはビューヘルパー関数h
を使用する方がよいでしょう。
あなたは、String#のGSUBを使用することができます。
%("... text... ").gsub(/\A"+|"+\Z/,'')
これは実際には小文字の '\ z'でなければなりません。 –
私はボックスのうち一つを知りませんが、これはあなたが欲しいものを行う必要があります。
class String
def strip_str(str)
gsub(/^#{str}|#{str}$/, '')
end
end
a = '"Hey, there are some extraneous quotes in this here "String"."'
puts a.strip_str('"') # -> Hey, there are some extraneous quotes in this here "String".
'^'と '$'は行の先頭と末尾に一致します。 '\ A'と' \ z'を文字列の先頭と末尾に合わせたいとします。 –
class String
# Treats str as array of char
def stripc(str)
out = self.dup
while str.each_byte.any?{|c| c == out[0]}
out.slice! 0
end
while str.each_byte.any?{|c| c == out[-1]}
out.slice! -1
end
out
end
end
チャックの答えをすべて文字列パターンの余分なインスタンスを削除する場合は、一部の+
記号が必要です。また、任意の順序で表示される可能性のある文字のセットを削除したい場合は、機能しません。
たとえば、文字列の末尾に、a, b, c
の文字列を指定し、文字列がfooabacab
の場合は、上で指定したコードのようなものが必要です。
あなたが同じことをビルトイン方法を見つけるので、もし私がここに車輪の再発明だ場合、私は知らない、私は
:-)知らせてください、私は、config/initializers/string.rb
に以下を追加しましたtrim
,ltrim
およびrtrim
メソッドをStringクラスに追加します。
# in config/initializers/string.rb
class String
def trim(str=nil)
return self.ltrim(str).rtrim(str)
end
def ltrim(str=nil)
if (!str)
return self.lstrip
else
escape = Regexp.escape(str)
end
return self.gsub(/^#{escape}+/, "")
end
def rtrim(str=nil)
if (!str)
return self.rstrip
else
escape = Regexp.escape(str)
end
return self.gsub(/#{escape}+$/, "")
end
end
と私はこのようにそれを使用します。私は、これは:-)を役に立てば幸い
"... hello ...".trim(".")
=> "hello" を
と
"\"hello\"".trim("\"")
=> "hello" を
しかし、私は "私のstrinの始まりと終わりで" g /テキスト。 – alamodey