input type = "email" test @ testine izin veriyor, neden?


10

Her zaman tarayıcı e-posta-doğrulama-regex JS / PHP bazı regex desen daha sağlam olduğu varsayımı altında oldum.

İşverenim bana her iki telin de doğru kabul edildiğini gösterdi (sonunda FF28'de):

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

İkincisi neden doğrudur? Bu bir hata mı yoksa gelecek için bir şey mi? Çünkü anlayabildiğim kadarıyla, bir uzantı kullanmamak doğru olmayabilir (belki localhosts dışında).

Buna ışık tutabilecek olan var mı?


2
"belki localhosts dışında" - ve tarayıcı nasıl farklılaşıyor?
MrWhite

1
Ayrıca, <input type="email" />bunun yalnızca mobil web siteleri için yararlı olduğunu düşünüyorum , böylece klavyelerin çoğu uygun bir ekranla ( @tuş ve bazı .comkısayollarla…) görünecektir .
RichouHunter

Bilmiyorum, tarayıcı kurmuyorum :) Akıllıca bir hile olabilir, ya da belki ekleyebileceğiniz bir ayar olabilirpattern
Martijn

6
Bu tamamen geçerli bir adres, neden reddedilsin ki?
Jörg W Mittag

1
çünkü test@testgeçerli bir e-posta adresi ... olarak kabul testedilir tld. Tıpkı tld test@comiçin geçerli bir e-posta adresidir com... tools.ietf.org/html/rfc2822#section-3.4.1
SnakeDoc

Yanıtlar:


20

Çünkü geçerlidir testbir üst düzey etki alanı olduğu bilinen ve localpart@top-level-domaingeçerli bir e-posta adresi.

Bkz. Örneğin E-posta adresi, alan adı bölümü


Ve ICANN'in artık istediği TLD'ye başvurmak için yeterince büyük bir süreci olduğu için, e-posta doğrulayıcısının testhenüz kaydedilmemiş olması nedeniyle bir TLD olarak reddetmesi artık mümkün değil.
Steve Jessop

1
@SteveJessop Ayrıca OP sözdizimsel geçerliliğinden söz edip etmediğini (kayıtlı olmasa bile e-posta geçerli olacağını) veya e-postanın çalışıp çalışmadığını (ve bu durumda çok daha fazlasının gerekip gerekmeyeceğini) kontrol edip etmediğini belirtmedi. .
Matteo

Var olup olmadığını kontrol etmemek, alan adı uzantısının gerekmediğine şaşırdım. Bu, tarayıcı doğrulamasını çok daha az kullanışlı hale getirir, çünkü yalnızca asd @ reklamlar yazmak zorunda kalır ve geçer.
Martijn

5
@Martijn: "Tarayıcı doğrulaması" yalnızca bir ilk satır doğrulama kontrolüdür (kolayca atlanabilir), bu yüzden mümkün olan en geniş kontrol olması gerekir. Son "katı" doğrulamanın yine de sunucu tarafı mantığınızda olması gerekir.
MrWhite

3

Üst düzey etki alanı adına sahip bir makine oluşturmak için hosts dosyanızı düzenleyebilir veya yerel ağda bir DNS sunucusu çalıştırabilirsiniz. E-posta adresine yalnızca o yerel ağdan yönlendiriliyorsa, ancak olası bir yapılandırmada erişilebilir.


2

Ayrıca, web tarayıcılarının herhangi bir doğrulama kontrolü yapması gerekmediğini unutmayın . Eski tarayıcılar e-posta adresiyle özel bir şey yapmaz. Daha yeni tarayıcılar geçerli olabilir, ancak 'e-posta' türü, kullanıcıya özel bir klavyenin gösterilebileceği mobil cihazlarda en kullanışlıdır.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.