У меня есть поле ввода с MultiDatepicker выбора, MultiDatepicker введите даты в поле, как: 2016-10-02
, 2016-10-13
, 2016-10-25
,
Как можно проверить все даты или один, может быть, я могу с помощью валидатора регулярного выражения массива, если существуют?
$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);
Я полагаю, что вы ищете способ проверить часть разделенных запятыми (с пробелами или без пробелов) дат в определенном формате.
Вы можете использовать
'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
запретить символ новой строки в конце)Это достаточно просто. Мы используем 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'))
)
));