의도
전자 메일 주소에 대해 최소한의 유효성 검사를 수행하려고 노력하고 있습니다. 나는이 일을 해요 이유가 내가 구현하고 사양이 형식으로 전자 메일 주소가 필요하다 :전자 메일 주소의 도메인 부분에있는 유효한 문자는 무엇입니까?
mailto:<uri-encoded local part>@<domain part>
mailto:
최종
@
에 분할하고 싶은
하고, "로컬 부분"이 이들 사이에 있다고 가정합니다. "로컬 부분"이 인코딩 된 URI인지 확인합니다.
이보다 훨씬 더 많은 것을하고 싶지는 않습니다.이 사양은 대부분의 경우 "최선의 노력"유효성 검사를 허용하지만 URI 인코딩과 mailto:
접두사에 대해 매우 구체적입니다.
문제 내가 읽은 모든 것을에서
는 @
에 분할 나에게 위험한 것 같다.
웹 및 스택 오버플로 응답에 대한 많은 충고를 보았습니다. 대부분 "RFC 읽기"라고 말하고 일부는 도메인 부분이 특정 문자 만 가능하다고 말합니다. 즉 1-9
a-z
A-Z
-.
, 아마도 몇 가지 다른 문자가 있지만 그 이상은 아닙니다. 나는 도메인 이름에 대한 다양한 RFC를 읽을 때 예 :은 :
, 나는 "any CHAR" (dtext
) 또는 "any character between ASCII 33 and 90" (dtext
)는 @
기호를 사용할 수 있습니다 의미있는, 허용되는 것을 알 수있다. 이것은 "comments" are allowed in parens (
)
and can contain characters between ASCII 42 and 91이 @
을 포함하기 때문에 더 복잡해집니다.
RFC1035 seems to support the letters+digits+dashes+periods requirement 그러나 "domain literal" syntax in RFC5322은 (는) 문자를 허용 할 수 있습니다.
나는 RFC를 오해하고 있습니까? 아니면 전자 메일 주소의 도메인 부분에 @
을 허용하지 않는 것이 있습니까? "도메인 리터럴"구문은 내가 염려 할 필요가없는 것입니까?
코드에 포함 된 'mailto : ...'줄 제출과 관련하여 버그가 있으므로 입력 내용을 설명하는 해당 코드 줄의 공백을 무시하십시오. - http://meta.stackexchange.com/questions/183642를 참조하십시오. –