|
|
|
| Почему не работаю границы в регулярном выражении, т.е. в функции проверки корректного ввода 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);
}
|
| |
|
|
|
|
|
|
|
для: 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);
}
?>
|
| |
|
|
|