2012-02-28 6 views
1

안녕하세요, 루비에서 입력을 위생 처리하고 싶지만 동시에 외국 문자가 포함 된 문자열을 망칠 필요가 없습니다.루비에 대한 입력을 sanitize

string1 = string.downcase.gsub (/ < (? | \ n) *?> /, '') .gsub ("", "") .gsub (",", "") .gsub "", "") .gsub ("_", "") .gsub (";", "") .gsub (" "", "") .gsub ("?", "") .gsub ("!", "") .gsub ("^", "") .gsub ("%", "") .gsub "$", "")

문자열은 공백, 아포스트로피 및 모든 것을 제외한 문자 (숫자가 확실하지 않음)를 제거해야하며 위생 처리되어야합니다. 내가 뭔가를 잊어 버렸는지 나는 잘 모르겠다.

문자열에 악센트 부호가없는 문자와 같은 무해한 영어 이외의 문자가 포함되어 있지 않은 한 제 코드는 정상적으로 작동합니다. 문제를 해결하려면 코드를 사용하십시오. 내 추측에 의하면 그들은 % 25와 그 모든 것들로 변환되고 이후에 그들은 깨진다. 사실 내가 위생 처리하지 않더라도 그것은 깨집니다. 비 영어 문자를 올바르게 처리하도록 Ruby에 지시하려면 어떻게해야합니까? 정말 고마워.

+0

시도해보십시오. http://ruby-unicode.rubyforge.org/doc/? – Candide

답변

2

이와같이;

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

평판이 좋을 때 나는 upvote 할 것이다 당신의 극단적으로 도움이되는 응답을 당신을 감사하십시오. 나는 묻고 싶다.이 둘을 비교할 수 있니? .gsub (/ \ W + /, "") 및 .gsub (/ <(.|\n)*?> /, '')는 동일하거나 또는 동일하지 않습니까? 덕분에 다시 많이 – user1237870

+0

[rubular] (http://rubular.com)에서 루비 regexp를 확인할 수 있습니다. –