информационная безопасность
без паники и всерьез
 подробно о проектеRambler's Top100
Где водятся OGRыSpanning Tree Protocol: недокументированное применениеЗа кого нас держат?
BugTraq.Ru
Русский BugTraq
 Анализ криптографических сетевых... 
 Модель надежности двухузлового... 
 Специальные марковские модели надежности... 
 Бэкдор в xz/liblzma, предназначенный... 
 Три миллиона электронных замков... 
 Doom на газонокосилках 
главная обзор RSN блог библиотека закон бред форум dnet о проекте
bugtraq.ru / форум / miscellaneous
Имя Пароль
ФОРУМ
если вы видите этот текст, отключите в настройках форума использование JavaScript
регистрация





Легенда:
  новое сообщение
  закрытая нитка
  новое сообщение
  в закрытой нитке
  старое сообщение
  • Напоминаю, что масса вопросов по функционированию форума снимается после прочтения его описания.
  • Новичкам также крайне полезно ознакомиться с данным документом.
Формат адреса e-mail 24.07.05 14:10  
Автор: Heller <Heller> Статус: Elderman
<"чистая" ссылка>
Нигде не смог найти сабж. Для проверки формата написал такой регэксп:

$mail=~/^\w+([\.-][\w-]+@(\w{2,}|\w+(\.\w[\w-]*)\.[A-Za-z]{2,4}$/

Будут какие-нибудь комментарии?
regexp + PHP-код внутри 25.07.05 10:04  
Автор: kstati <Евгений Борисов> Статус: Elderman
Отредактировано 25.07.05 10:12  Количество правок: 4
<"чистая" ссылка>
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;
  }
}

---
Не везде согласен 28.07.05 02:18  
Автор: Heller <Heller> Статус: Elderman
Отредактировано 28.07.05 02:20  Количество правок: 1
<"чистая" ссылка>
> w+([\.-][\w-]+@(\w{2,}|\w+(\.\w[\w-]*)\.[A-Za-
> z]{2,4}

> А Как вам такое мыло?
> a@__________________________.az
Ну, теоретически-то оно может существовать, насколько я понимаю (если закрыть глаза на домен az).


> Первый символ имени всегда был буквой...
> второй и последующий- буквой,цифрой, или чем-либо из
>".[]-_$!#
Ни разу такого не видел, если честно, ну да ладно. Добавлю - хуже не будет.

> Домен... все просто - домены выше первого уровня могут
> состоять
> из букв, цифр символов []_-= и разделяются точкой
Аналогично.

> Коды стран тоже общедоступны, но стоит ли их впендюривать в
> проверку, если их очень много? в любом введь случае можно
> написать my@domain.com и мыло будет неверным, несмотря на
> синтаксис )*/
Здесь поддержу HandleX'а. Доменов первого уровня расплодилось до кучи: museum, name, aero, coop, pro, int, скоро планируется ввести mobi. Кстати, museum состоит аж из шести символов, так что лучше, думаю, проверять домен первого уровня как ([a-zA-Z]{2,4}|museum).

>(!eregi('^([a-zA-Z])+(([][\-\$=!_.])*([a-zA-Z0-9])+)+' //
> имя
Адрес e-mail вполне может начинаться с цифры или символа подчёркивания (вроде бы).
Ещё не совсем понятна конструкция "[]". Может в PHP оно что-то значит, но я сам на Perl'е пишу, а там это можно трактовать только как пустой шаблон.

> .'@'.'(([a-zA-Z0-9_\-=]+)\.)+' // домены
> 2...n уровня
ИМХО мой первоначальный вариант несколько более продуман - такой regexp запросто пропустит домен вроде "=-".
C подчеркиванием вначале и доменами 1-го уровня - согласен -- я слишком строг. А закрывающаяся скобка сразу после открывающейся ([]) -- это просто первый символ, используемый в наборе символа (т.е. он не трактуется как служебный, а юзается в проверке). 03.08.05 21:15  
Автор: kstati <Евгений Борисов> Статус: Elderman
<"чистая" ссылка>
А домены первого уровня .biz, .xxx — как с ними? ;-) Имхо, не стоит домены жёстко прописывать в коде, мир не стоит на месте. 26.07.05 08:13  
Автор: HandleX <Александр М.> Статус: The Elderman
Отредактировано 26.07.05 08:14  Количество правок: 2
<"чистая" ссылка>
знак подчеркивания тоже используется довольно часто... 25.07.05 00:30  
Автор: Tom_Pain Статус: Незарегистрированный пользователь
<"чистая" ссылка>
Он входит в класс \w 25.07.05 01:38  
Автор: Heller <Heller> Статус: Elderman
<"чистая" ссылка>
1




Rambler's Top100
Рейтинг@Mail.ru


  Copyright © 2001-2024 Dmitry Leonov   Page build time: 0 s   Design: Vadim Derkach