2012-02-28 148 views
1

Hallo我想清理來自Ruby的輸入,但同時不會弄亂包含外部字符的字符串。 ()。,\').gsub(「」,「」).gsub(「,」,「」)。gsub(()。,'').gsub(「,」,「」).gsub( 「'」,「」)。gsub(「_」,「」).gsub(「;」,「」).gsub(「 - 」,「」).gsub(「:」,「」)。gsub 「。」,「」).gsub(「?」,「」).gsub(「!」,「」).gsub(「^」,「」)。gsub(「%」,「」).gsub 「$」,「」)爲紅寶石擦亮輸入

該字符串需要被除去空格,撇號,除了字母(不知道數字)以外的所有東西,除了被消毒。我不確定我是否忘記了一些東西,而且可能是多餘的。

只要字符串不包含無害的非英文字符,例如重音字母,我希望它處理但我們的代碼會破壞我的代碼。我的猜測是,他們被轉換爲%25和所有的東西,然後他們休息。事實上,即使我根本沒有消毒,它也會崩潰。我怎樣才能讓Ruby正確處理非英文字符?萬分感謝。

+0

試過這個http://ruby-unicode.rubyforge.org/doc/? – Candide 2012-02-28 13:44:18

回答

2

這樣;

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

非常感謝您提供非常有幫助的答案,我會在信譽允許的情況下加註。我想問,你能比較這兩個嗎? .gsub(/ \ W + /,「」)和.gsub(/ <(.|\n)*?> /,'')是否相同?再次感謝 – user1237870 2012-02-29 11:05:20

+0

你可以從[rubular](http://rubular.com)檢查你的ruby regexp。 – 2012-02-29 12:24:58