2016-10-12 3 views
1

У меня есть полевой ввод с множественным выбором выбора, multidatepicker введите даты в поле: 2016-10-02, 2016-10-13, 2016-10-25. Как можно проверить все даты или один, возможно, я могу с помощью regexp revalxp, если они существуют?Как проверить многоточие в элементе с регулярным выражением PHP Zend Framework

$element_edit->addValidator ('regex', false, array(
    'pattern'=>'/^\d{4}-\d{2}-\d{2}$/',//for only one 
    'messages'=>array(
     'regexNotMatch'=>'Validate error') 
    ) 
); 
$form->addElement($element_edit); 
+0

Какие узоры вы ищете? Дата с запятой? Я думаю, вы ищете '' pattern '=>'/^ (\ d {4} - \ d {2} - \ d {2}) (?:, \ S * (? 1)) * $/' ' –

ответ

2

Я считаю, что вы ищете способ для проверки кусок (в промежутке между с или без пробелов) дат, разделенных запятыми в определенном формате.

Вы можете использовать

'pattern'=>'/^(\d{4}-\d{2}-\d{2})(?:,\s*(?1))*$/' 

См regex demo

Детали:

  • ^ - начало строки
  • (\d{4}-\d{2}-\d{2}) - ваш единственный шаблон строки даты: 4 цифры, -, 2 цифры, - и 2 цифры
  • (?:,\s*(?1))* - ноль или более последовательностей
    • , - запятой
    • \s* - 0+
    • пробельные символы
    • (?1) - по той же схеме, как и в группе 1 (ваш конкретный дата модели)
  • $ - конец строки (может быть заменен \z, чтобы запретить символ новой строки на ан d)
+0

Hoho, хорошая работа, THX, вы меня спасете :) –

0

Это очень легко. Мы используем Zend на работе, поэтому я много разбираюсь в этом.

$this->addElement('text', 'firstname', array(
     'label'  => 'Your first name:', 
     'required' => true, 
     'validators' => array(
     array('regex', false, array(
     'pattern' => '{The pattern}', 
     'messages' => 'Your firvalidation message')) 
    ) 
)); 
+0

Вы, например, работаете только на одну дату, мне нужно проверить несколько дат, чтобы мне нужен кто-то вроде массива шаблонов для одного элемента. –

+0

Если я прав, поймите –

Смежные вопросы