먼저 떨어져,이 정규식은 잘못된 것입니다. 명확하지 않은 이메일 주소 (예 : "[email protected]")와 적어도 다소 이상한 것들 (예 : "[email protected]")을 허용합니다.
사양에 따르면 적어도 [email protected]은 기술적으로 유효하다고 생각하지만 전체 사양은 실제로 구현되는 경우는 거의 없으므로 이와 같은 것을 허용할지 여부는 디자인 결정입니다. 일부 주요 공급 업체 인 은과 같은 이메일을 허용합니다.
구성 요소로 분해하십시오. 다음과 같이 전체 정규식 문자열 :
[a-zA-Z0-9\+\.\_\%\-\+]{1,256}\@[a-zA-Z0-9][a-zA-Z0-9\-]{0,64}(\.[a-zA-Z0-9][a-zA-Z0-9\-]{0,25})+
다음 문자열 :은 "@"기호 앞에
[a-zA-Z0-9\+\.\_\%\-\+]{1,256}
일치 문자.
{1,256}
부분은 "1 256 배 사이 진행 항목과 일치하는"을 의미합니다. 즉, "@"기호 앞에 최소 1 자 이상 (256 자 이하)이 있어야합니다. 예 :
[a-zA-Z0-9]{1, 50}
은 "1 - 50 자의 영숫자"를 의미합니다.
\ @ 은 "@"기호와 일치합니다. 0이어서
[a-zA-Z0-9][a-zA-Z0-9\-]{0,64}
하나 개 이상의 알파벳 문자 - "."@ 기호 다음 64 개 영숫자 (또는 대시) 및 전 (예 : '.com'또는 그 이전 부분). {0, 64}
은 "0에서 64 사이의 일치"를 의미합니다.
(\.[a-zA-Z0-9][a-zA-Z0-9\-]{0,25})+
"." (예 : '.com'). 마침표 다음에 1 - 26 자의 영숫자가옵니다. 또한 첫 번째 영숫자 다음에 -를 사용할 수 있습니다.
여기서 명백한 결함은 대시가 발생하는 위치 (또는 몇 개)에 제약이 거의 없다는 것입니다.
[email protected]
[email protected]
a+.%[email protected]
%@t.c-
가 읽어이다 사용하는 예 정규식 – Mox