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

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

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

 

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

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

тема: Не могу исправить регулярное выражение для почты
 
 автор: sega_z   (07.11.2011 в 16:13)   письмо автору
 
 

Всем привет!!!

Уже весь измучился, не могу исправить регулярное выражение по проверке электронной почты:

if(!preg_match("/[0-9a-z_]+@[0-9a-z_^\.]+\.[a-z]{2,3}/i",$slova)) 
//проверка е-mail адреса регулярными выражениями на корректность
 {
 echo "<Script Language='JavaScript'>alert('Ошибка в адресе электронной почты!');</Script>";
 }


Работает нормально, но если после 'собаки' указано тире между словами, то выдаёт ложь.
Хотя такие адреса бывают, например: xxx@rusoil-moscow.ru).

Как устранить данную ошибку?

  Ответить  
 
 автор: Slo_Nik   (07.11.2011 в 16:16)   письмо автору
 
   для: sega_z   (07.11.2011 в 16:13)
 

добавить дефис в символьный класс, перед "0" @[-0-9a-z_^\.]

на будущее, вот сюда Вам надо было писать регулярные выражения

  Ответить  
 
 автор: sega_z   (07.11.2011 в 16:31)   письмо автору
 
   для: Slo_Nik   (07.11.2011 в 16:16)
 

Я уже допустил десятки ошибок и боюсь допустить ещё.

Напишите, пожалуйста весь код!!!!

  Ответить  
 
 автор: Jovidon   (07.11.2011 в 16:36)   письмо автору
 
   для: sega_z   (07.11.2011 в 16:31)
 

<?php
if(!preg_match("/[0-9a-z_]+@[-0-9a-z_^\.]+\.[a-z]{2,3}/i",$slova))  
//проверка е-mail адреса регулярными выражениями на корректность 
 

 echo 
"<Script Language='JavaScript'>alert('Ошибка в адресе электронной почты!');</Script>"
 }
?>

  Ответить  
 
 автор: sega_z   (07.11.2011 в 16:38)   письмо автору
 
   для: Jovidon   (07.11.2011 в 16:36)
 

Да, теперь все нормально работает.

Всем участникам данной темы большое спасибо!!!!

  Ответить  
 
 автор: KPETuH   (07.11.2011 в 16:56)   письмо автору
 
   для: sega_z   (07.11.2011 в 16:38)
 

на русском теперь тоже возможна почта так что не правильно будет работать )

  Ответить  
 
 автор: alHaos   (08.11.2011 в 08:38)   письмо автору
 
   для: Jovidon   (07.11.2011 в 16:36)
 

.info домен не отработает.

  Ответить  
 
 автор: cheops   (08.11.2011 в 12:06)   письмо автору
 
   для: Jovidon   (07.11.2011 в 16:36)
 

Кстати, да, участок "{2,3}" лучше поправить на "{2,6}"... правда сейчас любой может за круглую сумму зарегистрировать домен первого уровня, поэтому могут появляться домены и больше 6 символов. Однако сообщений об этом пока не поступало, поэтому максимальным доменом первого уровня вроде остается .travel

  Ответить  
 
 автор: sega_z   (08.11.2011 в 22:36)   письмо автору
 
   для: cheops   (08.11.2011 в 12:06)
 

А как исправить, чтобы русские символы тоже пропускало???

  Ответить  
 
 автор: cheops   (09.11.2011 в 13:44)   письмо автору
 
   для: sega_z   (08.11.2011 в 22:36)
 

рядом с a-z нужно вставить а-яё

  Ответить  
Rambler's Top100
вверх

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