|
|
|
| Всем привет!
Вот столкнулся с регулярными выражениями и необходимо, чтобы выражение проверяло вводимость только цифр и точки и заменяло к примеру запятые на точки.
То есть необходимо, чтобы пользователь вводил правильный IP-адрес.
Вот что у меня получилось:
if (ereg("^ ([0-9]{3})([0-9]{2|3})([0-9]{2|3})([0-9]{2|3})?$", $_POST['ip1']))
{
links ("<b class=text>Введены допустимые символы в IP адресе</b>");
}
else
{
links ("<b class=text>Введены недопустимые символы в IP адресе</b>");
}
|
Но у меня при проверке пишет, что Введены недопустимые символы в IP адресе
Помогите пожалуйста!
Заранее спасибо! | |
|
|
|
|
|
|
|
для: Vados
(23.08.2006 в 16:14)
| | Хм... так у вас точки нигде не фигурируют... кроме того, после ^ идёт пробел - он тоже становится обязательным, т.е. если вначале не будет пробела - регулярные выражения будут сообщать о недопустимых символах. Можно поступить так
<?php
$_POST['ip1'] = "127.0.0.1";
if (ereg("^|[0-9]{1,3})\.[0-9]{1,3})\.[0-9]{1,3})\.[0-9]{1,3})|$", $_POST['ip1']))
{
exit ("<b class=text>Введены допустимые символы в IP адресе</b>");
}
else
{
exit ("<b class=text>Введены недопустимые символы в IP адресе</b>");
}
?>
|
| |
|
|
|
|
|
|
|
для: cheops
(23.08.2006 в 16:54)
| | Но данная комбинация не работает!
У меня, даже, если я не ввожу никакого числа пишет, что Введены допустимые символы в IP адресе!
Как с этим бороться?
Спасибо! | |
|
|
|
|
|
|
|
для: Vados
(23.08.2006 в 17:19)
| | Скобки какие-то проскачили ... Можно вот так, работает - проверил :)
if (ereg("^[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}$", $_POST['ip1']))
|
| |
|
|
|
|
|
|
|
для: kasmanaft
(23.08.2006 в 18:06)
| | 999.999.999.999 пройдёт
Можно сделать проверку одним монструозным выражением (взято из Фридла):
^([01]?\d\d?|2[0-4]\d|25[0-5])\.([01]?\d\d?|2[0-4]\d|25[0-5])\.
([01]?\d\d?|2[0-4]\d|25[0-5])\.([01]?\d\d?|2[0-4]\d|25[0-5])$
|
Но проще разбить проверку на этапы и проверять каждое число по отдельности. | |
|
|
|