이메일을 맹목적으로 받아들이지 않도록 확인하는 가장 간단한 임시 임시는 무엇입니까?
사용자가 내 사이트에서 계정을 만들 때 모든 입력을 수락하지 않도록 이메일에 대한 서버 유효성 검사를 만들고 싶습니다 .
핸드 셰이크 유효성 검사 를 수행하는 방법으로 확인을 보냅니다 .
나는 최고가 아니라 단순하지만 아무것도 검증하지 않는 너무 단순하지 않은 것을찾고 있습니다. 정규식으로 수행 할 수 없기 때문에 정규식이 올바른 유효성 검사를 수행하지 않기 때문에 제한이 있어야합니다.
정규식에 내재 된 신택스와 견제를 제한해야합니다.
어떤 정규 사용을 위해 사용할 수 있습니까?
^\S+@\S+$
표준을 따르는 이메일 주소 만 허용됩니다. 그러나 표준을 엄격하게 준수하지 않지만 여전히 작동하는 일부 이메일 주소가 있습니다.
다음은 기본 유효성 검사를위한 몇 가지 간단한 정규식입니다.
@ 문자 포함 :
@
@와 그 공동 마침표를 포함합니다.
@.*?\.
@ 앞, 마침표 앞과 하나 이상의 문자가 있습니다.
.+@.+\..+
@ 앞, 마침표 앞과 하나 이상의 @ 문자 만 있습니다.
^[^@]+@[^@]+\.[^@]+$
사용자 AmoebaMan17은 공백을 제거하기 위해 다음 수정을 제안합니다.
^[^@\s]+@[^@\s]+\.[^@\s]+$
AmoebaMan17의 표현을 약간 변경하면 주소가 점으로 시작 / 종료되는 것을 막고 서로 옆에있는 여러 점을 막아야 생각합니다. 일반적인 문제를 제거하면서 다시 복잡하게 만들지 고합니다.
(?!.*\.\.)(^[^\.][^@\s]+@[^@\s]+\.[^@\s\.]+$)
작동하는 것입니다 (하지만 저는 RegExpert가 아닙니다). 사용자가 마침표로 끝나는 문장 끝에서 이메일 주소를 복사하여 넣는 문제를 수정합니다.
예 : 여기 내 새 이메일 주소 tabby@coolforcats.com이 있습니다.
다음은 RFC 2822 섹션 3.4.1 을 준수하는 것입니다 .
(?:[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])+)\])
호기심이 많을 경우 대비하여. :)
^ [a-zA-Z0-9 _. +-] + @ [a-zA-Z0-9-] +. [a-zA-Z0-9-.] + $
- 단 1 @
- 여러 도메인 및 하위 도메인
'ProgramingTip' 카테고리의 다른 글
여러 배열 키가 있는지 확인하는 방법 (0) | 2020.10.22 |
---|---|
매트 테이블 도장가 작동하지 발생 (0) | 2020.10.22 |
Python에서 정적 메서드를 사용하면 어떤 이점이 있습니까? (0) | 2020.10.22 |
마우스 선택 후 tmux 출력에서 시스템 클립 보드로 복사하는 방법은 무엇입니까? (0) | 2020.10.22 |
신속하게 UILabel에 밑줄을 긋는 방법은 무엇입니까? (0) | 2020.10.22 |