| |
|
|
| | Вот написал функцию на проверку эл. почты
Не слишком ли строго по отношению к запрету на первый символ.
<?php
function email($mail)
{
$sym ="\!\@\#\$\%\^\&\*\(\)\_\-\+\=\s\,\.\<\>\?\/\{\}\[\]\;\'"; // можно пополнить список
$pattern = "/^[^".$sym."](\w+([\-\.]?))*\w+([^".$sym."])@[^".$sym."]((\w+([\-\.]?))*\w+)+\.[a-z\-\.]+[^".$sym."]$/i";
if(!preg_match($pattern,$mail)){
return false;
}
return true;
}
?>
|
Укажите на ошибки, если возможно
Спасибо | |
| |
|
|
| |
|
|
| |
для: ZeeG
(14.08.2007 в 11:14)
| | | А теперь - по-русски.
Со стандартом на именование доменных имен и почтовых ящиков у этого шаблона нет ничего общего. | |
| |
|
|
| |
|
|
| |
для: Trianon
(14.08.2007 в 12:32)
| | | Что Вы имеете в виду под стандартами? | |
| |
|
|
| |
|
|
| |
для: ZeeG
(14.08.2007 в 12:35)
| | | Под стандартами я имею в виду RFC-документы. | |
| |
|
|
| |
|
|
| |
для: Trianon
(14.08.2007 в 12:37)
| | | Спасибо за ссылку. Почитал. Но увы не увидел где написано, что имена могут начинаться с
1) !@#$%^&*()_-+={}][\|:;',./? и тд
2) Что непосредственно перед и после @, в адресе эл. почты могут быть те же знаки
3) Что адрес эл. почты может с них начинаться и ими же заканчиваться
Если Вам не трудно приведите реальный пример адреса (не локальный)
Спасибо | |
| |
|
|
| |
|
|
| |
для: ZeeG
(14.08.2007 в 13:04)
| | | 1. Тогда может быть Вы покажете место, в котором написано, что имена не могут начинаться с этих символов? Или заканчиваться на них? | |
| |
|
|
| |
|
|
| |
для: Trianon
(14.08.2007 в 13:19)
| | | [^".$sym."]
Думаю, что можно и по-другому это написать, но пока не знаю как.
PS или Вы про ссылку, что дали? | |
| |
|
|
| |
|
|
| |
для: ZeeG
(14.08.2007 в 13:20)
| | | В стандарте - я имел в виду.
Я вот, например, знаю такой домен i.am .
На каком основании Вы отказываете в валидности адресов этого домена? | |
| |
|
|
| |
|
|
| |
для: Trianon
(14.08.2007 в 13:25)
| | | Я Вас правильно понял i.am или i.am.. С точкой не прошло! | |
| |
|
|
| |
|
|
| |
для: ZeeG
(14.08.2007 в 13:28)
| | | Идите на nic.ru и попробуйте зарегать домен "%:?%.ru" | |
| |
|
|
| |
|
|
| |
для: kasmanaft
(15.08.2007 в 16:32)
| | | Блин, во вы заморачиваетесь!
Все проще. Как-то так:
/^[a-z0-9-.]+@[a-z0-9-.]+\.\w{2,4}$/i
|
| |
| |
|
|
| |
|
|
| |
для: SHAman
(15.08.2007 в 16:39)
| | | А ведь можно вообще не париться.
Мне просто было интересно можно ли его (скрипт) считать надежным. | |
| |
|
|
| |
|
|
| |
для: SHAman
(15.08.2007 в 16:39)
| | | домены первого уровня mobile и travel , конечно, Ваших скриптов недостойны..... | |
| |
|
|
| |
|
|
| |
для: Trianon
(15.08.2007 в 22:14)
| | | info@test.travel и info@test.travel проходят. | |
| |
|
|
| |
|
|
| |
для: Trianon
(15.08.2007 в 22:14)
| | | Вы вероятно использовали на то патерн. Я кидал исправленную версию.
$sym ="\!\@\#\$\%\^\&\*\(\)\+\=\s\,\.\<\>\?\/\{\}\[\]\;\'";
$pattern = "/^[^".$sym."]*(\w+([\-\.]?))*[\w+]?([^".$sym."])@[^".$sym."\-\_]*((\w+(\-\.?))*\w+)+\.[\w\-\.]+[^".$sym."]$/i";
|
| |
| |
|
|
| |
|
|
| |
для: ZeeG
(15.08.2007 в 23:04)
| | | Trianon обращался к SHAman. | |
| |
|
|
| |
|
|
| |
для: Trianon
(15.08.2007 в 22:14)
| | | Да, недостойны:) Ну, я просто не знал, что они есть:) Чтобы стать достойными, им нужно всего-лишь исправить одну циферку в моем выражении : ) | |
| |
|
|
|
| |
|
|
| |
для: Саня
(16.08.2007 в 03:47)
| | | Почти как Новый Год.
Но мне все же интересно каким адресам, по-Вашему, моя функ-я откажет в валидности. Привожу ее еще раз:
<?php
function email($mail)
{
$sym ="\!\@\#\$\%\^\&\*\(\)\+\=\s\,\.\<\>\?\/\{\}\[\]\;\'";
$pattern = "/^[^".$sym."]*(\w+([\-\.]?))*[\w+]?([^".$sym."])@[^".$sym."\-\_]*((\w+(\-\.?))*\w+)+\.[\w\-\.]+[^".$sym."]$/i";
if(!preg_match($pattern,$mail)){
return false;
}
return true;
}
?>
|
Спасибо | |
| |
|
|
| |
|
|
| |
для: ZeeG
(16.08.2007 в 07:15)
| | | Эм.. /.*/ - в валидности тоже никому не откажет :)
Ваша функция пропустит, например, "bla`~bl+a@мыло.r-u"
Не говоря уже о "Название домена должно состоять более чем из одного символа, начинаться и заканчиваться буквой латинского алфавита или цифрой" | |
| |
|
|