За последние 24 часа нас посетили 18118 программистов и 1682 робота. Сейчас ищут 1249 программистов ...

Почему false!!!

Тема в разделе "Регулярные выражения", создана пользователем kirwebgroup, 18 май 2009.

  1. kirwebgroup

    kirwebgroup Активный пользователь

    С нами с:
    21 ноя 2008
    Сообщения:
    48
    Симпатии:
    0
    Имеется входящая строка:

    Код (Text):
    1. $value = '04/05/2009';


    Проверка строки регулярным выражением:
    Код (Text):
    1. $check = preg_match('/^\d{1,2}([/])\d{1,2}\1\d{2,4}$/', $value);
    Используется:
    Код (Text):
    1.  
    2.     //date fields
    3.     protected function dateValue($value) {
    4.             $value = trim($value);
    5.             $check = preg_match('/^\d{1,2}([/])\d{1,2}\1\d{2,4}$/', $value);
    6.             if (! $check) $this->_error++;
    7.             unset($check);
    8.             return $this->_error;  
    9.     }
    Выражение заведомо правильное, но $check принимает значение false. Не могу понять почему, может кто пояснит.
    Заранее благодарю!
     
  2. Выражение не правильное. Учитывая ошибку, то я скажу, что писал его не ты, а скопировал откуда то. Поэтому и не скажу, в чем именно. Но она КРАЙНЕ очевидная. Ее сложно сделать, если делать.
     
  3. Mr.M.I.T.

    Mr.M.I.T. Старожил

    С нами с:
    28 янв 2008
    Сообщения:
    4.586
    Симпатии:
    1
    Адрес:
    у тебя канфетка?
    а я добрый :)
    Код (Text):
    1. #\d{1,2}\/\d{1,2}\/\d{2,4}#
     
  4. kirwebgroup

    kirwebgroup Активный пользователь

    С нами с:
    21 ноя 2008
    Сообщения:
    48
    Симпатии:
    0
    Пасибки, добрый Mr.M.I.T. ))

    Видать мыслим одинаково:
    Код (Text):
    1. /^\d{2}\/\d{2}\/\d{4}$/
    Да флоппик, выражение скопипастенно )) Хотел, как быстрее, а получилось, опять все самому!
    СПАСИБО, ЗА ОТВЕТЫ.
     
  5. md5

    md5 Активный пользователь

    С нами с:
    29 янв 2007
    Сообщения:
    250
    Симпатии:
    0
    ахахаха
    «всё самому»!!!