‘regular expressions’ etiketli yazýlar

Email adresi kontrolü için pek çok fonksiyon yazılmıştır. Bunları internette kolayca bulabilirsiniz. Fakat bu fonksiyonlar ne kadar doÄŸru çalışıyor? ‘Comparing E-mail Address Validating Regular Expressions’ isimli yazıda vakti bol saygıdeÄŸer bir arkadaşımız ‘Regular Expression’ ile yapılan 13 adet e-posta doÄŸrulamasını sistemli bir ÅŸekilde test etmiÅŸ, hangisinin nerede doÄŸru, nerede yanlış çalıştığını güzel bir ÅŸekilde listelemiÅŸ. Bu testlere göre mükemmel doÄŸrulukta çalışan bir metot bulamamış ama Kohana project‘ten Geert De Deckere tarafından geliÅŸtirilen aÅŸağıda göreceÄŸiniz ‘regular expression’ı en baÅŸarılı olarak seçmiÅŸ. Bu regex’te eksik olan 2 nokta bulmuÅŸ. Bu iki noktasizin için problem çıkarmayacaktır. Detayları yukarıda verdiÄŸim adreste bulabilirsiniz. AÅŸağıda bu regex’in fonksiyon haline getirilmiÅŸ halini bulabilirsiniz.

/**
* Eposta adresinin gecerli olup olmadigini kontrol eder.
* @param $eposta
* @return bool eposta gecerli ise 'true', degilse 'false' dondurur.
*/
function epostaDogrumu($eposta){
	return (bool) preg_match('/^[-_a-z0-9\'+*$^&%=~!?{}]++(?:\.[-_a-z0-9\'+*$^&%=~!?{}]+)*+@(?:(?![-.])[-a-z0-9.]+(?<![-.])\.[a-z]{2,6}|\d{1,3}(?:\.\d{1,3}){3})(?::\d++)?$/iD', $eposta);
}