로그인 이름의 유효성을 검사하려면 특수 문자 [email protected]#S%^*()+_-?/<>:"';
을 사용하고 싶습니다. 루비 레일에서 정규 표현식을 사용하는 공간. 이러한 특수 문자는 허용해서는 안됩니다. 그 코드는 무엇입니까?특수 문자 유효성 확인
답변
먼저, authlogic과 같은 로그인 용 보석을 사용하는 것이 좋습니다.
보석을 구성하여 이메일 주소의 유효성을 검사 할 수 있습니다. 또한 사용자 인증 등에 대해 걱정할 필요가 없다는 이점도 얻게됩니다.
너무 쉽게 작업 할 수있는 일품입니다.
잘 나는 레일을 모르는 그러나 이것은 정규식 내가 아는 다른 모든 언어처럼 보일 것 인 것이다 :
는^[^[email protected]#\$%\^\*\(\)\+_\-\?/\<\>:"';\. ]$
정규식 /^\w*$/
에는 문자, 숫자 및 밑줄을 사용할 수 있습니다.
또한, 당신은 쪽지 및 특정 질문에 대한 답변이 스레드에서 http://rubular.com
당신은받은 regexps '에에서 라이브 루비 정규 표현식 편집기가 있습니다. 당신은 원하지 않는 캐릭터를 차단하는 블랙리스트 접근법을 사용하고 있지만 실제로 이것이 가장 좋은 방법입니까? 나는 당신이 & 또는 ~을 포함하지 않았 음을보고, 아직 실종 될 가능성이있는 다른 많은 특수 문자들이 있습니다.
특수 문자를 차단하려는 경우 pablorc의 regexp 제안에 따라 화이트리스트 방식을 제안합니다. 그것은 훨씬 더 광범위하고 허용하려는 것만 나열합니다 ... 특수 문자가 아닌 : 단어, 밑줄 및 숫자 만 허용됩니다.
나는이 정규 표현식을 사용하여 화이트리스트 방식을 사용하는 방법을 만들었습니다.
def valid_login?(str)
return true if (/^\w*$/.match(str))
return false
end
이 방법은? valid_login하는 문자열이 특수 문자 때문에 모든 문자, 숫자 또는 밑줄이있는 경우에만 true를 반환 (플러스는 이러한 요구 사항을 충족하지 않는 탈락 한 다른) 안전하게 발견되었습니다.
사용법 :
> valid_login?("testy")
true
> valid_login?("a b")
false
> valid_login?("a'")
false
validates_format_of :username, :with => /^[A-Za-z0-9.&]*\z/
이
validates_format_of :username, :with => /^[^[email protected]#S%\^\*()\+_-\?\/<>:\"';]+$/
- 1. 특수 문자 유효성 확인
- 2. Jquery 만 특수 문자 유효성 확인
- 3. JSF : 특수 문자 유효성 검사
- 4. 특수 문자 및 배경색 추가
- 5. 문자열에서 특수 문자 (/ * - + _ @ & $ # %)를 확인 하시겠습니까?
- 6. 특정 특수 문자에 대한 데이터 유효성 확인
- 7. C의 데이터 유효성 확인
- 8. 특수 문자
- 9. 특수 문자
- 10. 특수 문자
- 11. SED 및 특수 문자
- 12. 사용자 이름과 숫자의 특수 문자, 이름의 특수 문자 및 성 양식 항목 확인
- 13. 문자 배열에서 특수 문자 식별
- 14. XSD의 특수 문자 제한 규칙
- 15. SAX 특수 문자 처리
- 16. URL의 특수 문자
- 17. WCF REST 특수 문자
- 18. 오라클의 utl_match 특수 문자
- 19. xml에 특수 문자 인코딩
- 20. strlen 및 특수 문자
- 21. ajax 특수 문자 게시
- 22. XPath 및 특수 문자
- 23. 데이터베이스에 특수 문자 저장
- 24. 라텍스의 특수 문자
- 25. 지구 밖으로 특수 문자
- 26. 특수 문자 jquery load
- 27. SQLite DB의 특수 문자
- 28. .NET C# 특수 문자
- 29. 특수 문자 인코딩
- 30. Google에서 특수 문자 찾기
는 * "그에 대한 코드는 무엇입니까?"일 것, 다른 하나는 지적 할 수 있도록 * 왜 여기에 귀하의 노력을 게시하지 오류 : 물건을 배우는 훨씬 더 좋은 방법, IMO. –
나는 Nuby이지만 특수 문자를 차단하는 대신 합법적 인 문자를 허용해야합니다. 누군가 ¨, § 또는 ½을 사용하면 어떨까요? –