2012-09-24 4 views
0

전자 메일 정규 표현식을 만들려고합니다. 이것은 달성하고자하는 것입니다 :두 번째 수준의 Tld가있는 정규식 전자 메일

"_A-Za-z0-9-", 선택적으로 ". [_ A-Za-z0-9-]"를 따르고 "@" 상징. 이메일의 도메인 이름은 "A-Za-z0-9"로 시작해야하고 첫 번째 레벨 Tld (.com, .net) ". [A-Za-z0-9]"로 시작해야하며 선택적으로 두 번째 레벨 Tld .com.au, .com.my) " . [A-Za-z] {2,}"두 번째 레벨 Tld는 점 "."으로 시작해야하며 길이는 2 자 이상이어야합니다.

([a-zA-Z0-9_\-\.]+)@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.)|(([a-zA-Z0-9\-]+\.)+))([a-zA-Z]{2,4}|[0-9]{1,3})(\w?\.[A-Za-z]{2,}) 

나를 위해 작동하지 :

이것은 내가 지금까지있는 것입니다. 나는이 이메일을 확인하는 데 싶습니다

[email protected] 
[email protected] 
[email protected] 

및 NOT을 :

[email protected] 

어떤 제안?

+1

제안은 ... 각각 다른 요구 사항을 확인 별도의 기능으로 구현하기 :

는 RFC2822에 해당하는 정규 표현식입니다. 또한 http://stackoverflow.com/questions/201323/using-a-regular-expression-to-validate-anail-address – tripleee

답변

0

하지 마십시오. 하지 마 :

(?:[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*|"(?:[\x01-\x08\x0b\x0c\x0e-\x1f\x21\x23-\x5b\x5d-\x7f]|\\[\x01-\x09\x0b\x0c\x0e-\x7f])*")@(?:(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?|\[(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?|[a-z0-9-]*[a-z0-9]:(?:[\x01-\x08\x0b\x0c\x0e-\x1f\x21-\x5a\x53-\x7f]|\\[\x01-\x09\x0b\x0c\x0e-\x7f])+)\]) 

더 나은이

+0

도 참조하십시오. "@"로 나눠서 각 부분을 테스트하십시오. 이 작업을 수행하는 최선의 방법은 무엇입니까? – Shmarman

관련 문제