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

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

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

 

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

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

тема: Почему не работаю границы в регулярном выражении
 
 автор: mazyakov   (27.05.2006 в 17:53)   письмо автору
 
 

Почему не работаю границы в регулярном выражении, т.е. в функции проверки корректного ввода E-mail количество символов после точки не ограничено, хотя границы указаны. В чем причина такого поведения функции?
Для наглядности привожу кусок кода.
function in_mail()
    {
    if(!empty($this->in_mail))
        {
        $this->in_mail=trim($this->in_mail);
        $this->in_mail=strip_tags(stripslashes($this->in_mail));
        if(!preg_match("/[0-9a-z_]+@[0-9a-z_^\.]+\.[a-z]{2,3}/i", $this->in_mail)) return(43);
        $this->in_mail=AddSlashes($this->in_mail);
        }
    return(0);
         }

   
 
 автор: cheops   (27.05.2006 в 23:16)   письмо автору
 
   для: mazyakov   (27.05.2006 в 17:53)
 

Следует явно указать начало при помощи ^ и конец при помощи $, т.е.
<?php
function in_mail() 
    { 
    if(!empty(
$this->in_mail)) 
        { 
        
$this->in_mail=trim($this->in_mail); 
        
$this->in_mail=strip_tags(stripslashes($this->in_mail)); 
        if(!
preg_match("/^[0-9a-z_]+@[0-9a-z_^\.]+\.[a-z]{2,3}$/i"$this->in_mail)) return(43); 
        
$this->in_mail=AddSlashes($this->in_mail); 
        } 
    return(
0); 
         }
?>

   
Rambler's Top100
вверх

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