Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > PHP: Общие вопросы > Помощь в регулярке PRCE


Автор: Цербер 27.8.2008, 09:34
Доброе время суток!
Помогите исправить регулярку, или добавить в мою то, чего в ней не хватает.
Нужна универсальная регулярка для мыла, в формате PRCE.
Собственно вот моя регулярка, не судите строго, в регулярке пока я не чуствую себя как рыба в воде=)

Код

$pattern = '/[a-z|0-9|_|-|.]*[@]{1}[a-z,0-9,-]*[.]{1}([a-z]{2,})|([a-z,0-9,-]{2,}[.]{1}[a-z]{2,})/';

А эту я нашёл на pcre.ru, правда помоему она расчитана на парсинг а мне больше нужен именно для проверки на валидность

Код

$pattern = '/[\.\-_A-Za-z0-9]+?@[\.\-A-Za-z0-9]+?[\.A-Za-z0-9]{2,}/';
    

Необходимо что бы под паттерн попадали любые валидные мыла, с доменами второго, третьего уровня ну и т.д.

Заранее спасибо!


Автор: gta4kv 27.8.2008, 10:28
http://forum.vingrad.ru/articles/topic-207727/kw-email-valid-preg-match/hl/%25D1%2581%25D0%25B0%25D0%25BC%25D0%25B0%25D1%258F+%25D0%25B4%25D0%25BE%25D1%2582%25D0%25BE%25D1%2588%25D0%25BD%25D0%25B0%25D1%258F/index.html

Автор: Цербер 27.8.2008, 10:41
gta4kv
спасибо за ссылку=)
вот подходящая регулярка

Код

'^[0-9a-zA-Z]([0-9a-zA-Z\-\_]+\.)*[0-9a-zA-Z]*@[a-zA-Z0-9]*([0-9a-zA-Z\-\_]+\.)*[0-9a-zA-Z]+\.[a-zA-Z]{2,6}$';


Добавлено через 12 минут и 2 секунды
странно но эта регулярка не работает если ввести [email protected].

Автор: gta4kv 27.8.2008, 10:56
Читай внимательно первый пост, и комментарии. Там еще примеры. Хотя достаточно первый пост внимательно прочитать. (конец поста)

Добавлено через 6 минут и 23 секунды
Код

if( filter_var( $email, FILTER_VALIDATE_EMAIL ) != $email )
{
       exit( 'format incorrect!' );
}

Автор: awers 27.8.2008, 11:04
а вообще если что то надо -  можно и погуглить. ибо сайтов с готовыми регулярками валом. ну а уж если лень переться на гугл - на этом форуме поиск работает отлично

Автор: gta4kv 27.8.2008, 11:12
аминь.

Автор: HackMan 27.8.2008, 11:22
gta4kv, в PHP до версии 5.3 эта функция не корректно обрабатывает символ перевода строки \n. [email protected]\[email protected] - тоже будет считать валидным мылом.

Автор: Цербер 27.8.2008, 12:38
Всем спасибо smile 

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)