w+([\.-][\w-]+@(\w{2,}|\w+(\.\w[\w-]*)\.[A-Za-z]{2,4}
А Как вам такое мыло?
a@__________________________.az
/* Проверка строки - правильное ли это мыло,или глаза щипит?
Немного истории - мыло состоит из трех частей...
имя, разделитель, домен
Имя может состоять из букв и цифр.
Первый символ имени всегда был буквой...
второй и последующий- буквой,цифрой, или чем-либо из".[]-_$!#
Последний (ну, может он и второй) - буквой или цифрой...
Разделитель состоит из одного символа ;) - комЭТа
Домен... все просто - домены выше первого уровня могут состоять
из букв, цифр символов []_-= и разделяются точкой
Домен первого уровня может быть одним из общественных - ну, списочек известен
или набором латинских букв длинной в два символа - кодом страны.
Коды стран тоже общедоступны, но стоит ли их впендюривать в проверку, если их очень много? в любом введь случае можно написать my@domain.com и мыло будет неверным, несмотря на синтаксис )*/
function IsValidEmail($string) {
// пустая строка - неправильная.
if ($string==""|$string == NULL) return false;
if(!eregi('^([a-zA-Z])+(([][\-\$=!_.])*([a-zA-Z0-9])+)+' // имя
.'@'.'(([a-zA-Z0-9_\-=]+)\.)+' // домены 2...n уровня
.'(com|edu|gov|mil|net|org|info|[a-zA-Z]{2})$' // домен домены первого уровня
,$string)) {
return false;
} else {
return true;
}
}
---
|