Модераторы: skyboy, MoLeX, Aliance, ksnk
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> проверка почты регуляркой (M.a_И-л[email protected]_И-л.-_1 
:(
    Опции темы
JSergRu
  Дата 22.4.2012, 17:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 2
Регистрация: 22.4.2012

Репутация: нет
Всего: нет



Пока еще не нашел ни одной регулярки в просторах интернета, которая пропустит M.a_И-л[email protected]_И-л.-_1.
Почему именно такой адрес в качестве шаблона?
Уже есть: майл.рф по-русски.рф, почта.рф
Не за горами какой-нибудь Емайл.рф с предосавлением почтовых адресов, да и владельцы доменов РФ уже имеют адреса шаблона info@домен.рф, также уже испытывается http://пример.испытание/!
Итак, собственно вопрос: какой регуляркой одобрить такие адреса как:
инфо@домен2.домен1
и_н.ф-о@домен-3.домен-2.домен1
I.N.ф_о-1@D_оме_n-3.Доm-ен2.домен1
I.N.ф_о-1@[225.225.225.225]
I.N.ф_о-1@[1.1.1.1]
user@[IPv6:2001:db8:1ff::a0b:dbd0]

Вот моя регулярка, но она почему-то мне не очень нравится, мне кажется можно получше составить...
if (!preg_match("|^([a-zа-я0-9_\.\-]+)@([a-zа-я0-9_\.\-]+)|is", strtolower($emai)))
например:
if (!preg_match("#^([a-Zа-Я0-9\.\-]+)@([a-Zа-Я0-9\.\-]+$#)", $emai))
{неверно}else{верно}
PS возможно в этой теме появится первая регулярка для почтовых адресов, которая не будет вызывать нереканий даже у самых опытных программистов.
Есть ли на этом форуме достойные программисты, способные составить НЕ ###код, решающий эту задачу?

Это сообщение отредактировал(а) JSergRu - 22.4.2012, 20:03
PM MAIL   Вверх
Sentox
Дата 22.4.2012, 20:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


как то так
**


Профиль
Группа: Участник
Сообщений: 392
Регистрация: 27.1.2009
Где: Зимбабве

Репутация: 7
Всего: 7



Для этого уже давно создана регулярка в RFC822
http://ddev.ru/556/regexp-dlya-proverki-email/
PM MAIL   Вверх
IBS
Дата 22.4.2012, 20:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 214
Регистрация: 29.7.2008
Где: Белоруссия

Репутация: нет
Всего: 6



Sentox, хм.... не то, чтобы я знаю ответ, но перейдя по ссылке у меня( по началу) глаза на лоб вылезли =), а потом я прочитал визу, что это юморок чей-то =))
PM MAIL   Вверх
Sentox
Дата 22.4.2012, 20:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


как то так
**


Профиль
Группа: Участник
Сообщений: 392
Регистрация: 27.1.2009
Где: Зимбабве

Репутация: 7
Всего: 7



Цитата(IBS @ 22.4.2012,  20:27)
Sentox, хм.... не то, чтобы я знаю ответ, но перейдя по ссылке у меня( по началу) глаза на лоб вылезли =), а потом я прочитал визу, что это юморок чей-то =))

Это правило охватывает весь диапазон email
http://www.ex-parrot.com/pdw/Mail-RFC822-Address.html
PM MAIL   Вверх
IBS
Дата 22.4.2012, 20:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 214
Регистрация: 29.7.2008
Где: Белоруссия

Репутация: нет
Всего: 6



Sentox,тогда извините, наверное вы правы.
Я всегда предполагал, что регулярные выражения должны упрощать обработку текста. В данном случае мне было бы проще написать свой алгоритм для обработки подобных адресов: и понятнее было бы, и работал бы быстрее. 
Это мое личное мнение )

Это сообщение отредактировал(а) IBS - 22.4.2012, 20:52
PM MAIL   Вверх
Sanchezzz
Дата 23.4.2012, 10:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1670
Регистрация: 19.11.2006
Где: Voronezh

Репутация: 41
Всего: 60



Для нормальных email
Код

function is_email($mail){
        return ( ! preg_match("/^([a-z0-9\+_\-]+)(\.[a-z0-9\+_\-]+)*@([a-z0-9\-]+\.)+[a-z]{2,6}$/ix", $mail)) ? FALSE : TRUE;
    }
$st = '[email protected]';
if(is_email($st) ) print "Верно"; else "Не верно";

Для адресов 
[email protected]
в конце меняем 
@([0-9]+\.)+[0-9]{1,3}$/ix

для адресов 
IPv6:2001:db8:1ff::a0b:dbd0  хз как нужно конвертить 



--------------------
Понравился ответ "+" по репе, не забываем закрывать тему, заказы в LS.
PM MAIL Skype GTalk   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "PHP"
Aliance
IZ@TOP
skyboy
SamDark
MoLeX

Новичкам:

  • PHP редакторы собираются и обсуждаются здесь
  • Электронные книги по PHP, документацию можно найти здесь
  • Интерпретатор PHP, полную документацию можно скачать на PHP.NET

Важно:

  • Не брезгуйте пользоваться тегами [code=php]КОД[/code] для повышения читабельности текста/кода.
  • Перед созданием новой темы воспользуйтесь поиском и загляните в FAQ
  • Действия модераторов можно обсудить здесь

Внимание:

  • Темы "ищу скрипт", "подскажите скрипт" и т.п. будут переноситься в форум "Web-технологии"
  • Темы с именами: "Срочно", "помогите", "не знаю как делать" будут УДАЛЯТЬСЯ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 1.1326 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.