Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   Серверные технологии и Flash (http://www.flasher.ru/forum/forumdisplay.php?f=62)
-   -   Проверка ввода даты? (http://www.flasher.ru/forum/showthread.php?t=110801)

forward 09.04.2008 11:48

Проверка ввода даты?
 
Помогите разобрать с проверкой ввода даты:
Код:

$_POST["end_pokaz"]=trim($_POST["end_pokaz"]);
  if(!empty($_POST["end_pokaz"]))
  {
    if (!preg_match("/[0-9]+[0-9\.]+\.[0-9]+[0-9\.]+\.[0-9]+[0-9]/i", $_POST["end_pokaz"]))
    {
      $action = "";
      $error = $error."<LI>Неверно введена дата \n";
    }
  }

:)

UnVisible 09.04.2008 14:31

Мдя... немного бреда ты написал, наверно удобнее было б так:

Код:

  if($_POST["end_pokaz"] && trim($_POST["end_pokaz"])!='')
+ вотето для читабельности лучше вот так:
Код:

$error .= "<LI>Неверно введена дата";
А регулярка вроде должна быть такая (в регулярках я слаб):

Код:

if (!preg_match("/[0-9]{2,2}+\.+[0-9]{2,2}+\.+([0-9]{2,2}|[0-9]{4,4})/i", $_POST["end_pokaz"]))
Жаль что проверить только не могу чтобы точно сказать! :)

forward 09.04.2008 15:53

Регулярочка неработает....блин

Кстати а почему так
Код:

if (!preg_match("/[0-9]{2,2}+\.+[0-9]{2,2}+\.+([0-9]{2,2}|[0-9]{4,4})/i", $_POST["end_pokaz"]))
а не вот так

Код:

if (!preg_match("/[0-9]+[0-9\.]+\.[0-9]+[0-9\.]+\.[0-9]+[0-9]/i", $_POST["end_pokaz"]))

kotsie 14.04.2008 08:02

По-моему, регулярочкой дату не очень проверять, количество дней в месяцах разное (и не равное 99), количество месяцев тоже 12, только с годами всё просто, и то по большому счёту можно было бы принимать четырёхзначные

UnVisible 14.04.2008 11:07

Цитата:

Сообщение от forward
Регулярочка неработает....блин

Кстати а почему так
Код:

if (!preg_match("/[0-9]{2,2}+\.+[0-9]{2,2}+\.+([0-9]{2,2}|[0-9]{4,4})/i", $_POST["end_pokaz"]))
а не вот так

Код:

if (!preg_match("/[0-9]+[0-9\.]+\.[0-9]+[0-9\.]+\.[0-9]+[0-9]/i", $_POST["end_pokaz"]))

По сути в двух случаях правильно. Но так читабельнее, тоесть [0-9]{2,2} = количество цифер от 2 до 2 с диапазоном от 0 до 9-ти! Я вот только с точкой сомневаюсь что правильно.
А по поводу что месяц имеет не 99 дней - можно будет и елементарным ИФом проверить! =)

forward 15.04.2008 18:25

дело в том не работает не так не так...

BoUnd 22.04.2008 13:14

if (!preg_match("/\d{1,2}\.\d{1,2}\.\d{2,4}/", $_POST["end_pokaz"]))
чтобы понять вашу ошибку почитайте что скрывает за собой символ +
да и не стоит полагатся на регулярко, как правило она используется чтобы вытащить из строки день, месяц и год, а дальше уже проверять нормальность ввода
ведь такая регулярка скушает и такое: 0.0.00

forward 22.04.2008 18:44

Спасибо на этом!!!


Часовой пояс GMT +4, время: 18:44.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.