|
|
|
| Помогите, пожалуйста, обнаружить ошибку. В переменной $mail - эл.адрес. Его требуется проверить. То есть пока, в тестовом коде, просто при соответствии - "yes", иначе "no".
Вариант
if (eregi("^[a-z0-9\._-]+@[a-z0-9\._-]+[a-z0-9\._-]$", $mail))
{
echo "yes <br>";
}
else echo "no<br>";
работает, но, стоит добавить экранированную точку (ради чего иначе и третий массив было вводить), как работать перестает:
if (eregi("^[a-z0-9\._-]+@[a-z0-9\._-]+\.[a-z0-9\._-]$", $mail))
{
echo "yes <br>";
}
else echo "no<br>";
То есть в ответ на верный e-mail вида n@n.n этот код выдает "no". В чем ошибка?
p.s. Отдельное спасибо, если кто объяснит разницу между функциями eregi() и preg_match(). | |
|
|
|
|
|
|
|
для: ck
(23.10.2005 в 16:36)
| | Попробуйте выражение следующего вида
$reg = "/[0-9a-z_]+@[0-9a-z_^\.]+\.[a-z]{2,3}/i" | |
|
|
|
|
|
|
|
для: ck
(23.10.2005 в 16:36)
| | Добавьте после последнего [a-z0-9\._-] последовательность {2,6} иначе у вас получается, что после точки разрешается только один символ до конца слова. | |
|
|
|