2012-02-28 8 views
1

ハローのための入力をサニタイズ私は、Rubyからの入力をサニタイズしたいのですが、同時にそれはめちゃくちゃに外国文字を含む私の文字列を持っていません。はルビー

string1 = string.downcase.gsub(/ <(?| \ n)*?> /、 '').gsub( ""、 "").gsub( "、"、 "").gsub gsub( "_"、 "").gsub( ";"、 "").gsub( ":"、 "") " " "").gsub("?"、 "").gsub( "!"、 "").gsub( "^"、 "")。GSUB( "%"、 "").gsub( 「$」、「」)

文字列をサニタイズすることに加えて、スペース、アポストロフィ、および番号がわからない文字以外のすべて()を剥奪する必要があります。私は何かを忘れてしまったかどうかは分かりません。おそらく何かが重複しています。

私のコードはOKのように長い文字列は、私はそれが対処したいアクセント文字、など無害な英語以外の文字が含まれていないように動作しますが、彼らは私のコードを破ります。私の推測では、彼らは%25に変換され、そのすべてのものが、その後彼らは壊れることです。実際には、たとえ私が全く衛生的でない場合でも、それは壊れます。 Rubyに英語以外の文字を正しく扱えるようにするにはどうすればよいですか?大いに感謝する。このような

+0

試しましたhttp://ruby-unicode.rubyforge.org/doc/? – Candide

答えて

2

" ' ; te st".gsub(/\W+/, "") # "test" 
+1

あなたの非常に有益な答えをありがとう、私は評判が許す限りアップします。私は尋ねたい、あなたはこれら二つを比較することができますか? .gsub(/ \ W + /、 "")と.gsub(/ <(.|\n)*?> /、 '')は同じかどうかを確認します。もう一度たくさんありがとう – user1237870

+0

あなたは[rubular](http://rubular.com)からあなたのルビー正規表現をチェックすることができます。 –