2011-09-08 5 views
0

User 모델의 일부로 이메일 주소의 특정 도메인, TLD 및 키워드를 차단하고 싶습니다.도메인 차단을 차단 하시겠습니까?

예를 들어 qq.com 또는 .pl 또는 hostingcoupons이 포함 된 이메일 주소를 차단하고 싶을 수 있습니다.

수십 개의 도메인, TLD 및 키워드가있을 수 있습니다.

그렇다면 유효성 검사기는 그런 것을 어떻게해야할까요? 나는 물건의 정규식 측에 더 많은 것을 요구하고있다. 그리고 커스텀 발리 데이터를 셋업하는 방법은별로 없다.

이 응용 프로그램은 레일즈 2.3.4입니다.

답변

0

/\w+(.com|.org|.pl)/ = ~ "[email protected]"

+ W \ - 단어의 문자를 한 번 이상
(.COM입니다 | .ORG .pl) .com 또는 .org 또는 .pl

이 표현식은 일치 항목의 인덱스 또는 일치하지 않는 경우 nil을 반환합니다.
찾고자하는 부분과 정확히 일치하는 표현식을 세분화 할 수 있습니다. 다른 방법은 전자 메일을 정규식 그룹으로 분류하고 필요한 그룹 만 평가하는 것입니다. 신장.

+0

'.'이 올바르게 작동하지 않는 것 같습니다. 'example.com'은'.pl'과 일치합니다. http://rubular.com/r/Bybza8Ml5D – Shpigford

+0

또한 문자열과 일치하지 않는 것 같습니다. 예를 들어 나는 "hosting"을 차단하고 싶지만 freehosting @ something.com은 해당 문자열의 시작 바로 앞에 문자가 있기 때문에 "hosting"과 일치하지 않습니다. – Shpigford

관련 문제