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





Легенда:
  новое сообщение
  закрытая нитка
  новое сообщение
  в закрытой нитке
  старое сообщение
  • Напоминаю, что масса вопросов по функционированию форума снимается после прочтения его описания.
  • Новичкам также крайне полезно ознакомиться с данным документом.
regexp + PHP-код внутри 25.07.05 10:04  Число просмотров: 1973
Автор: 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;
  }
}

---
<miscellaneous>
Формат адреса 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