Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В. MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум Регулярные Выражения

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Проверка e-mail на правильность ввода
 
 автор: Паша   (04.01.2008 в 21:47)   письмо автору
 
 

Подскажите вот данный код подойдёт для проверки е-mail или в нём есть недостатки, можете предложить свои варианты:

//
// проверяет мыло и возвращает
//  *  +1, если мыло пустое
//  *  -1, если не пустое, но с ошибкой
//  *  строку, если мыло верное
//

function checkmail($mail) {
   // режем левые символы и крайние пробелы
   $mail=trim(pregtrim($mail)); // функцию pregtrim() возьмите выше в примере
   // если пусто - выход
   if (strlen($mail)==0) return 1;
   if (!preg_match("/^[a-z0-9_-]{1,20}@(([a-z0-9-]+\.)+(com|net|org|mil|".
   "edu|gov|arpa|info|biz|inc|name|[a-z]{2})|[0-9]{1,3}\.[0-9]{1,3}\.[0-".
   "9]{1,3}\.[0-9]{1,3})$/is",$mail))
   return -1;
   return $mail;
}

   
 
 автор: ddhvvn   (04.01.2008 в 23:11)   письмо автору
 
   для: Паша   (04.01.2008 в 21:47)
 

Почему у Вас на первую часть всего 20 символов отведено? Да, еще я уже не раз встречал email с точкой (last.firtst@site.com)!

Также вот это перечисление доменов не обязательно делать!

Короче, просто откройте поиск, такие темы каждый день создаются, только в разделе "Рег.выражения"! Уже надоело даже читать их не то что отвечать!

   
 
 автор: Tarasishe   (05.01.2008 в 10:44)   письмо автору
 
   для: ddhvvn   (04.01.2008 в 23:11)
 


# email: мин  8 символов
$mail = trim($_POST['email']);
$mail = (strlen($mail) > 7 && preg_match( '/^[A-Z0-9._-]+@[A-Z0-9][A-Z0-9.-]{0,61}[A-Z0-9]\.[A-Z.]{2,6}$/i' , $mail))

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования