Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В. PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум Регулярные Выражения

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Помогите сделать проверку поля для ввода туда е-mail
 
 автор: Speaker   (24.01.2007 в 16:57)   письмо автору
 
 

Вообщем делаю следующий образом , но при отправке все равно выводит ошибку к примеру на такой тип е-mail : mail@mail-i.ru(не нравится дефис после @)/ И еще помогите сделать проверку что бы в поле не писали русскими буквами.


function emailOK($str)
{
$badChars = "[ ]+| |\+|=|[|]|{|}|`|\(|\)|,|;|:|!|<|>|%|\*|/|'|\"|~|\?|#|\\$|\\&|\\^|www[.]";

return (eregi($badChars,$str));
}

if ( !(eregi("([a-z0-9_\-\.])+@([a-z0-9_\-\.])+\.([a-z0-9_\-\.])+",$email)) || emailOK($email)):

$errorheader = "<p class=\"TABLETEXT\"><b>ОШИБКА: НЕПРАВИЛЬНЫЙ АДРЕС E-MAIL</b></p>";
$errormessage = "<p class=\"TEXT\">Введенный вами адрес e-mail (<a href=\"mailto:$email\">$email</a>) содержит
недопустимые символы или имеет неправильный формат.</p>
<p class=\"TEXT\">Вы можете выполнить следующие действия:</p>";


Спасибо заранее

   
 
 автор: bronenos   (24.01.2007 в 17:00)   письмо автору
 
   для: Speaker   (24.01.2007 в 16:57)
 

a-z тут он и так русские не пропустит
а насчет дефиса... может убрать \ перед ним

и я бы заменил последний + на {2,6}
так как самый короткий известный мне домен это ru а самый длинный это museum

   
 
 автор: bronenos   (24.01.2007 в 17:07)   письмо автору
 
   для: Speaker   (24.01.2007 в 16:57)
 

может я и ошибаюсь но во всяком случае в preg_match выражение надо засовывать например в /

   
 
 автор: cheops   (25.01.2007 в 00:28)   письмо автору
 
   для: Speaker   (24.01.2007 в 16:57)
 

Возможно вас заинтересует тема по ссылке http://www.softtime.ru/forum/read.php?id_forum=6&id_theme=8495.

   
 
 автор: LazY   (26.01.2007 в 07:29)   письмо автору
 
   для: cheops   (25.01.2007 в 00:28)
 

Согласен с cheops. Выражение вида

“/^[-0-9a-z_]+@[-0-9a-z_^\.]+\.[a-z]{2,6}$/i”

почти идеальное.
Однако оно позволяет в имени домена ввести подряд более одной точки. Чтобы это не происходило, можно выражение модифицировать:

'/^[-0-9a-z_]+@([-0-9a-z_]+\.)+[a-z]{2,6}$/i'

   
 
 автор: Trianon   (26.01.2007 в 09:57)   письмо автору
 
   для: LazY   (26.01.2007 в 07:29)
 

Ну, если уж Вы согласны с cheops'ом, то не дайте помереть серым, расскажите , зачем в поле домена знак подчеркивания?

   
 
 автор: cheops   (26.01.2007 в 13:32)   письмо автору
 
   для: Trianon   (26.01.2007 в 09:57)
 

Для красоты :)))

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования