Yazılım.
CevapSitesi.com Beta!
Çözüm Noktası
Facebook, Twitter, Google+ veya e-posta ile paylaşın.
| Sorular | Makaleler | Üyeler | Etiketler  | İletişim
Soru sormak ya da cevap vermek için;
giriş yapın veya üye olun.

Sosyal medya hesaplarınızla da giriş yapabilirsiniz.

Yazılım Soruları

0

JavaScript ile bir e-posta adresinin biçimini kontrol etme

JavaScript ile bir e-posta adresinin doğrulunu kesin olarak nasıl kontrol edebilirim.

Soran:07.04.16 23:03
misafir  

1 Cevap

1
Bunun için %100 sonuç veren bir kontrole ben şimdiye kadar rastlamadım.

Verilen çoğu örnek düzenli ifadeler üzerine. Hiç birisi de kesin olarak biçimi doğrulayabildiğini iddia edemiyor. Ancak geçersiz posta adreslerinin %99,99'unu yakalarız diyenler var.

İşte benim derlediğim bir kaç düzenli ifade:

function epostaGecerliMi(email) {
    var re = /^(([^<>()\[\]\.,;:\s@\"]+(\.[^<>()\[\]\.,;:\s@\"]+)*)|(\".+\"))@(([^<>()[\]\.,;:\s@\"]+\.)+[^<>()[\]\.,;:\s@\"]{2,})$/i;
    return re.test(email);
}
Yukarıdaki örnekte re değişkenine atayayıp kullanabileceğiniz bazıları şunlar:
(?:[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])+)\])
Üst seviye alan adlarını da (com, net, org...) kontrol etmek istiyorsanız.
[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+(?:[A-Z]{2}|com|org|net|gov|mil|biz|info|mobi|name|aero|jobs|museum)\b
Tabii ki bu örnekte başka alan adlarını da eklemeniz gerekir.

Fakat şunu şöylemek lazım. JavaScript ile e-posta adresi denetimine fazla güvenmeyin. Neticede müdahale edilebilir veya JavaScript devre dışı bırakılmış olabilir. En iyisi asıl kontrolü sunucu tarafında yapmaktır. Bazı sunucu tarafı posta fonksiyonları (.NET Framework daki System.Net.MailAddress gibi) denetim yapıyor.

Bana göre en basit denetimi kullanın. Asıl denetimi sunucu tarafında yapın. En basit regex şöyle olabilir.

function epostaGecerliMi(email) 
{
    var re = /\S+@\S+\.\S+/;
    return re.test(email);
}


Cevaplayan: 07.04.16 20:16
cevapsitesi
102,035p 16ü
Cevabı seçen: 08.06.16 00:03
canora
101,387p 4ü