如何用regexp PHP Zend框架验证元素中的多日期


How can validate multidates in element with regexp PHP Zend Framework

我有字段输入与multidatepicker选择,multidatepicker输入日期字段,如:2016-10-02, 2016-10-13, 2016-10-25。如何验证所有日期或一个,也许我可以与数组regexp验证器,如果存在?

$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演示

:

  • ^ -字符串
  • 起始
  • ('d{4}-'d{2}-'d{2}) -您的单一日期字符串模式:4位数,-, 2位数,-和2位数
  • (?:,'s*(?1))* - 0个或多个
    • , -逗号
    • 's* - 0+ whitespaces
    • (?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'))
    )
));