input type =“email”은 test @ test를 허용합니다. 왜 그런가요?


10

필자는 항상 브라우저 전자 메일 유효성 검사 정규식이 JS / PHP의 일부 정규식 패턴보다 강력하다는 가정하에있었습니다.

내 고용주는 방금 두 줄이 모두 올바른 것으로 간주되었음을 보여주었습니다 (FF28의 마지막).

test@test.com // Expected to be true, is true
test@test     // Expected to be false, is true

후자는 왜 사실입니까? 이것은 버그입니까, 아니면 미래를위한 것입니까? 내가 알 수있는 한, 확장을 사용하지 않는 것은 정확하지 않습니다 (로컬 호스트를 제외하고).

이것에 약간의 빛을 비출 수있는 사람?


2
"어쩌면 로컬 호스트와는 별도로"-브라우저는 어떻게 차별화됩니까?
MrWhite

1
또한 <input type="email" />모바일 웹 사이트에만 유용하므로 대부분의 키보드가 적절한 디스플레이 ( @키 및 일부 .com단축키 와 함께 표시됨)로 표시됩니다 .
RichouHunter

몰라요, 브라우저를 만들지 않습니다 :) 영리한 속임수 일 수도 있고 추가 할 수도있는 설정일 수도 있습니다.pattern
Martijn

6
완벽하게 유효한 주소인데 왜 거부됩니까?
Jörg W Mittag

1
test@test유효한 이메일 주소 이므로 ...로 취급 test됩니다 tld. 툴에test@com 유효한 이메일 주소 와 마찬가지로 com... tools.ietf.org/html/rfc2822#section-3.4.1
SnakeDoc

답변:


20

때문에 유효 test최상위 도메인하고 수 localpart@top-level-domain유효한 이메일 주소입니다.

예를 들어 이메일 주소, 도메인 부분


그리고 ICANN은 이제 누구든지 자신이 선택한 TLD를 신청할 수있는 프로세스를 test갖기 때문에 이메일 검증자가 아직 등록되지 않았기 때문에 TLD 로 거부 할 수는 없습니다.
Steve Jessop

1
@SteveJessop 또한 OP는 구문 적 유효성에 대해 말하고 있는지 (등록되지 않은 경우에도 이메일이 유효 함) 또는 이메일이 작동하는지 확인하는 경우 (이 경우 훨씬 더 필요함)를 지정하지 않았습니다. .
마테오

그것이 존재하는지 확인하지 않고 도메인 확장이 필요하지 않은 것에 놀랐습니다. 누군가 asd @ ads 만 입력하면 통과하므로 브라우저 유효성 검사가 훨씬 덜 유용합니다.
Martijn

5
@Martijn : "브라우저 유효성 검사"는 첫 번째 라인 유효성 검사 (쉽게 무시 됨)이므로 가능한 가장 광범위한 검사 여야합니다. 최종 "엄격한"유효성 검사는 여전히 서버 측 논리에 있어야합니다.
MrWhite

3

호스트 파일을 편집하거나 로컬 네트워크에서 DNS 서버를 실행하여 최상위 도메인 이름을 가진 머신을 만들 수 있습니다. 이메일 주소는 해당 로컬 네트워크 내에서만 라우팅되지만 가능한 구성 인 경우에만 액세스 할 수 있습니다.


2

웹 브라우저는 유효성 검사를 수행 할 필요 가 없습니다 . 오래된 브라우저는 이메일 주소와 관련하여 특별한 작업을 수행하지 않습니다. 최신 브라우저는 유효성을 검사 할 수 있지만 '이메일'유형은 특수 키보드가 사용자에게 표시 될 수있는 모바일 장치에서 가장 유용합니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.