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

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

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

 

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

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

тема: Как сделать проверку email...
 
 автор: alegzandr   (15.03.2008 в 08:47)   письмо автору
 
 

В общем нужно расшарить эту функцию что бы она разрешала при регистрации адриса типа email_@email.ru, email-@email.ru, email.mail@email.ru вобщем в таком духе, а то я запутался ничего не вышло....

// THIS FUNCTION CHECKS IF PROVIDED STRING IS AN EMAIL ADDRESS
// INPUT: $email REPRESENTING THE EMAIL ADDRESS TO CHECK
// OUTPUT: TRUE/FALSE DEPENDING ON WHETHER THE EMAIL ADDRESS IS VALIDLY CONSTRUCTED
function is_email_address($email) {

    $regexp="/^[a-z0-9]+([_\\.-][a-z0-9]+)*@([a-z0-9]+([\.-][a-z0-9]+)*)+\\.[a-z]{2,}$/i";
    if(!preg_match($regexp, $email) ) { return false; } else { return true; }

} // END is_email_address() FUNCTION

   
 
 автор: alegzandr   (15.03.2008 в 08:53)   письмо автору
 
   для: alegzandr   (15.03.2008 в 08:47)
 

а нет, вроде сделал


    $regexp="/^[0-9a-z_]+([_\\.-][0-9a-z_]+)*@([0-9a-z_^]+([\.-][0-9a-z_^]+)*)+\\.[a-z]{2,}$/i";
    if(!preg_match($regexp, $email) ) { return false; } else { return true; }


правильно?

   
 
 автор: Real   (15.03.2008 в 14:26)   письмо автору
 
   для: alegzandr   (15.03.2008 в 08:53)
 

preg_match('/^[.-a-z0-9]+@[.-a-z0-9]+?\.[a-z0-9]{2,7}$/', $text);

   
 
 автор: Adamant   (15.03.2008 в 15:30)   письмо автору
 
   для: Real   (15.03.2008 в 14:26)
 

$regexp= '/^[-a-z0-9_]+@[.-a-z0-9]+\.[a-z0-9]{2,7}$/i';

   
 
 автор: Wunderbar   (15.03.2008 в 15:31)
 
   для: Adamant   (15.03.2008 в 15:30)
 

[поправлено модератором]

   
 
 автор: Adamant   (15.03.2008 в 15:32)   письмо автору
 
   для: Wunderbar   (15.03.2008 в 15:31)
 

Ваши доводы?

   
 
 автор: Adamant   (15.03.2008 в 15:36)   письмо автору
 
   для: Adamant   (15.03.2008 в 15:32)
 

Вообще если проверять по "общей" корректности (т.е. все разрешенные email)

$regexp = '/([a-zA-Z\d_-]+@{1}[a-zA-Z\d]+\.{1}[a-zA-Z]+)+/i';

   
 
 автор: Wunderbar   (15.03.2008 в 15:40)
 
   для: Adamant   (15.03.2008 в 15:36)
 

>Вообще если проверять по \"общей\" корректности (т.е. все разрешенные email)
>
>
$regexp = \'/([a-zA-Z\\d_-]+@{1}[a-zA-Z\\d]+\\.{1}[a-zA-Z]+)+/i\';


А вот зачем вы запрещаете адреса вида mail@sub.example.n e t (с зоной аналогично)?

[поправлено модератором]

   
 
 автор: Wunberdar   (15.03.2008 в 15:38)
 
   для: Adamant   (15.03.2008 в 15:32)
 

> /^[-a-z0-9_]+@[.-a-z0-9]+\.[a-z0-9]{2,7}$/i
mail@<@example@>.n e t - пробелов в доменной зоне нет. Это обход антиспама для незарегистрированных. А вот точку и дефис в названии ящика, что просил автор наоборот убрал.

   
Rambler's Top100
вверх

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