Bu betik, ziyaretçinin/kullanıcının girdiği bir e-posta adresinin geçerlilik kontrolünün nasıl yapılacağını göstermektedir.
Bir e-posta (e-mail) adresinin yapısı RFC 2822 standartı ile tanımlanmıştır. RFC 2822 standartı geniş bir konu olduğu için üzerinde fazla durulmayıp genel olarak e-posta kuralları aşağıda kısaca özetlenmiştir. Bu konu hakkında daha fazla bilgiyi konu sonundaki kısayollardan bulabilirsiniz.
E-posta kuralları
- Bir '@' işareti ile kullanıcı adı ve alan adı ayrılmalıdır.
- Alan adı gösterimi kendi standartına uymalıdır. Kısaca:
- 2 veya 3 harfli global uzantı içermelidir.
- 2 harfli yerel uzantı içerebilir.
- '.' (nokta) içermemelidir.
- '-' ve '_' karakterlerini içerebilir.
- Kullanıcı adı, '.' (nokta), '-' ve '_' karakterlerini içerebilir.
- Kullanıcı adı ve alan adı boşluk karakterini içermemelidir.
- '[', ']', '\' karakterlerini (ve diğer bir çok özel karakteri) içermemelidir.
- Tüm harfler küçük harf olmalıdır.
Bu aşamada bu kuralları kontrol etmenin en kolay yolu JavaScript RegExp nesnesi ile bir düzenli ifade tanımlamaktır. Aşağıda düzenli ifadeler ile hazırlanmış ePostaKont isminde bir e-posta kontrol metodu gösterilmektedir. Bu metot kullanılarak, herhangi bir e-posta adresinin kontrolü yapılabilir.
ePostaKont metodu, parametre olarak aldığı e-posta adresinin geçerli olması durumunda true, diğer türlü false döndürür.
<script type="text/javascript">
function ePostaKont(eposta)
{
var duzenli = new RegExp(/^[a-z]{1}[\d\w\.-][email protected][\d\w-]{3,}\.[\w]{2,3}(\.\w{2})?$/);
return duzenli.test(eposta);
}
</script>
Aşağıdaki örnek, ePostaKont metodu kullanılarak bir input:text elementine girilen e-posta adresini onkeyup olay tutucusu ile anlık olarak kontrolünü göstermektedir. Eğer kontrolün textbox çıkışında yapılması gerekiyorsa onBlur olay tutucusu kullanılabilir.
<script type="text/javascript">
function ePostaKont(eposta)
{
var duzenli = new RegExp(/^[a-z]{1}[\d\w\.-][email protected][\d\w-]{3,}\.[\w]{2,3}(\.\w{2})?$/);
return duzenli.test(eposta);
}
function kontrol()
{
var giris = document.getElementById('epGiris');
if(ePostaKont(giris.value))
giris.style.backgroundColor = "white";
else
giris.style.backgroundColor = "#F0D0D0";
}
</script>
<p><b>Lütfen bir e-posta adresi giriniz:</b></p>
<input type="text" id="epGiris" onKeyUp="kontrol()" style="width:200px;" />
Test Edin
E-posta ve e-posta adresleri ile ilgili bazı standartlar