Консультация № 107205
29.10.2007, 08:58
0.00 руб.
0 2 2
Здравствуйте уважаемые эксперты! Помогите мне разобраться, что я делаю не так ...
Мне нужно чтобы происходила проверка корректности переменной функцией preg_match

Приложение:
<?php$chislo = "354345";if (!preg_match("[[:digit:]]",$chislo)){echo "Правильно!";} else {echo "Неправильно";}?>

Обсуждение

Неизвестный
29.10.2007, 09:14
общий
это ответ
Здравствуйте, DismalGhost!
Для чисел нужно использовать модификатор \d, это означает любое число от 0 до 9, следующие за ним скобки({1,10} - от 1 до 10 символов) определяют колличество символов, по умолчанию 1.

Настоятельно рекомендую указывать ограничители ^ - начало, $ - конец (только после или перед разделителем "/" - в данном случае), т.к. без них будет учитываться любое совпадение, например без ограничителей abc123 пройдёт тест, т.к. содержит цифры.

Рекомендую почитать :
http://phpclub.ru/detail/article/regexp_1
http://phpclub.ru/detail/article/regexp_2

Приложение:
<?$chislo = "354345";if (preg_match("/^\d{1,10}$/",$chislo)) { echo "Правильно!"; } else { echo "Неправильно"; }?>
Неизвестный
29.10.2007, 09:51
общий
это ответ
Здравствуйте, DismalGhost!
Вот верный код (в приложении)

^ - не должно быть ничего в начале
$ - не должно быть ничего в конце
[0-9] - только цифра
+ - может повторятся 1 и более раз

Приложение:
^[0-9]+$
Форма ответа