рег выражения, проверка e-mail

Статус
В этой теме нельзя размещать новые ответы.

webman

Новичок
рег выражения, проверка e-mail

$pattern ="^(([-a-zA-Z0-9._]+)+(@[-a-zA-Z0-9._]+)+(\.[a-zA-z]{2,4}))*$";
c таким патерном работает, но хотелось бы узнать, покароче как нить можно записать? :)
ps первый раз использую регулярные выражения, поэтому интересно, можно ли кароче...
 

Steamroller

Новичок
А где ты эту гадость достал?
Она нормально воспримет например такое мыло:
.@.@..@[email protected]

лучше тут подбери чего-нибудь толковое:
http://www.regexlib.com/DisplayPatterns.aspx
 

webman

Новичок
tolst
вес не смущает, интересует "можно ли проще"
Steamroller
я ее ни где не доставал, я ее сам написал

-~{}~ 01.10.05 20:55:

вот Steamroller уже показал ошибки :)
теперь
$pattern ="^(([-a-zA-Z0-9._]+)+@([^.][-a-zA-Z0-9._]+)+(\.[a-zA-z]{2,4}))*$";
есть еще варианты?
 

Steamroller

Новичок
webman, проще можно наверно.
Когда регулярные выражения пишешь - вопрос в том когда остановиться. Насколько критично совпадение выражения с тем, с чем не должно совпадать.
В принципе на многих сайтах например яваскриптовые "валидаторы" проверяют наличие символа @ и точки справа от @. Типа такого:
[^@]+@[^.]+\..+
Примеры противоположного подхода - см. по ссылке что я привел.
 

Фанат

oncle terrible
Команда форума
поскольку задача проверки емейла требует кучи специальных знаний, то было бы правильнее остановиться на какой-нибудь более простой задаче.
а то непонятно - упрощать рег или наоборот - усложнять.
 

webman

Новичок
Steamroller
точка и @ мало, если человек пишет
[email protected]
это мыло указывает пользователь при регистрации, в дальнейшем на это мыло высылается какая то инфа, надо проверить его правильность, вернее не бредовость :)
не хочу что бы в БД хранился хлам типа того что указал
 

Фанат

oncle terrible
Команда форума
webman
твой рег такой же дырявый.

если не хочешь, чтобы в бд хранился хлам - просто не делай это поле обазательным.

а хламом может быть и мейл, безупречный с точки зрения синтаксиса.

Так что, тебе бы сначала определиться с задачей, которую ты хочешь решать, а потом уже искать решение.
 

webman

Новичок
Фанат
укажи на дыры, я не прошу писать за меня, я просто не вижу дыр...
с задачей я определился, поле должно быть обязательным

-~{}~ 01.10.05 21:07:

Фанат
я забыл... пожалуйста
и еще, т.к. сначала я не увидел дыр, то попросил упростить, если можно
а так как появились дыры, то лучше усложнить :)
 

Фанат

oncle terrible
Команда форума
не хочу что бы в БД хранился хлам
поле должно быть обязательным
извини, но эти два утверждения противоречат друг другу.
То есть, на формулировку задачи никак не тянут.
Не говоря уже о том, что никакой формулировкой ты не озаботился - приходится только догадываться.

Так что соберись с силами и постарайся сформулировать.
чайку там попей, погуляй, поспи.
А завтра, на свежую голову, реши, наконец - чего же ты хочешь. И нам расскажешь.

-~{}~ 01.10.05 21:15:

лучше усложнить
о, это не сложно.
Владей: http://php.spb.ru/other/mail.txt
 

webman

Новичок
Фанат
стараюсь, формулирую:
необходимо проверить корректность вводимого e-mail при регистрации, если e-mail не корректен (например, [email protected]), то регистрация не производится, данные в БД не заносятся, пользователю выдается сообщение об ошибке. Если e-mail корректен(и все остальные параметры корректны), то происходит регистрация с внесением регистрационной информации в БД.
Задача: проверить корректность введенного e-mail(внести изменения в предварительные результаты решения задачи, или указать на дары, предпочтительнее).
Предварительные результаты решения задачи:
$pattern ="^(([-a-zA-Z0-9._]+)+@([^.][-a-zA-Z0-9._]+)+(\.[a-zA-z]{2,4}))*$";
--------------------
вот формулировка, если и это не тянет на формулировку, то действительно надо отдохнуть :)
 

Фанат

oncle terrible
Команда форума
не понял.
тебе в рег надо внести проверку на домен mail.ru?
 

webman

Новичок
нет :) т.к. имя ящика с точкой (bill.gates) я не встречал, то подумал, что не корректным ты тут посчитал наличие точки в имени...

-~{}~ 01.10.05 21:50:

Фанат
закрывай тему плиз :) будем дыры выявлять в процессе эксплуатации :)
 

Фанат

oncle terrible
Команда форума
хорошо.
не встречал - так не встречал.
ок
если я введу емейл [email protected] - это будет корректный емейл, или некорректный?
 

webman

Новичок
да
корректность... прям не знаю как объяснить... например
xxx@[email protected] - не корректен (два раза @)
vseh_nenavigu@osobenno_vasu.ru - корректный, хотя его скорее всего и не существует...
[email protected] - не корректен( зону, если правильно называю .magazin, больше 4х символов не встречал, поэтому не корректен)
ну и русские быквы не корректны
 

Фанат

oncle terrible
Команда форума
vseh_nenavigu@osobenno_vasu.ru - корректный
поясни, чем он отличается в смысле корректности от [email protected]
какая тебе польза от наличия в базе емейла vseh_nenavigu@osobenno_vasu.ru ?
зону, если правильно называю .magazin, больше 4х символов не встречал, поэтому не корректен
ну, может быть, тебе сначала ознакомиться с предметом? А потом уже пиать регулярные выражения?

-~{}~ 01.10.05 22:04:

вот у тебя, блин, словесный понос.
со своими проблемами разобраться не можешь - но лезешь другим советовать
 

webman

Новичок
Фанат
спасибо, как всегда приятно ответил :)
закрывай тему плиз :)
 
Статус
В этой теме нельзя размещать новые ответы.
Сверху