Пользовательский ввод, проверьте правильность формата даты - PullRequest
0 голосов
/ 31 августа 2011

У меня есть форма, где пользователи вводят информацию. Я хочу иметь возможность проверить, что дата, которую они вводят в мое текстовое поле для даты, имеет правильный формат мм / дд / гг.

Как проверить, что пользователь вводил в формате мм / дд / гг, и, если он неверен, отобразить ошибку, сообщающую, что введенная дата должна быть в формате мм / дд / гг.

Спасибо

Ответы [ 3 ]

2 голосов
/ 31 августа 2011

Гораздо лучше использовать средство выбора даты или три <select> с, чтобы убедиться, что у пользователя нет выбора, кроме как ввести правильный формат даты.

1 голос
/ 31 августа 2011

Я уверен, что есть и другие способы сделать это, но используя explode(), разделите входящие данные в массив из [надеюсь] трех записей, используя «/» в качестве символа разделения.

Затем проверьте, находится ли первое значение в диапазоне 1..12, второе в диапазоне 1..31 и последнее в диапазоне 0..99.

Более сложная проверка обеспечит, чтобы для каждого месяца не превышалось соответствующее количество дней (для дополнительного кредита, допустите 29 в месяце 02, если и только если год делится на 4 равномерно (да, это портит все века, в которых первые две цифры не делятся на 4, но вы ограничены yy для формата года)).

Если ввод слишком короткий (я бы сказал, 5 символов для 1/1/1) или слишком длинный (более 8 символов), он недопустим.

Лучшим форматом будет НЕ , требующий разделитель, и просто убедитесь, что строка имеет длину 6 символов, все числовые, и что каждая пара цифр находится в допустимом диапазоне.

0 голосов
/ 31 августа 2011
$date='12/12/2011';
$reg="#^(0[1-9]|1[012])[- /.](0[1-9]|[12][0-9]|3[01])[- /.](19|20)\d\d$#";

if (preg_match($reg, $date)) {
    echo "GOOD date.";
} else {
   echo "BAD date.";
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...