使用 zendframework v2,我在表单工厂创建的字段上遇到了正则表达式验证器的问题。所有其他字段(使用相同的模式)都可以正常工作。
任何提示或指针表示赞赏。
$inputFilter->add($factory->createInput([
'name' => 'organizationName',
'filters' => array(
array('name' => 'StripTags'),
array('name' => 'StringTrim'),
),
'validators' => array(
array(
'name' => 'NotEmpty',
'options' => array(
'messages' => array(
\Zend\Validator\NotEmpty::IS_EMPTY => 'Organization name field is empty',
),
),
),
array(
'name' => 'Regex',
'options' => array(
'pattern' => '/^[a-z0-9 &-_\.,@]{3,25}$/i',
'messages' => array(
\Zend\Validator\Regex::INVALID => 'Invalid input, only a-z, 0-9 & - _ . characters allowed',
),
),
),
array (
'name' => 'StringLength',
'options' => array(
'encoding' => 'UTF-8',
'min' => '2',
'max' => '25',
'messages' => array(
\Zend\Validator\StringLength::TOO_SHORT => 'Organization name field must be at least 8 characters in length',
\Zend\Validator\StringLength::TOO_LONG => 'Organization name field must be no longer than 25 characters in length',
),
),
),
),
]));
附加细节:我正在使用 ZF2 生成表单,我还创建了一个验证过滤器,然后使用控制器来处理正确的表单提交。
我遇到的问题是上面处理“organizationName”正则表达式过滤器的 inputFilter 对象。
似乎虽然我在表单定义和[a-z0-9 &-_.,@]{3,25}的输入过滤器中使用的正则表达式模式不处理字符串Intl. Widgets Inc.即使我没有收到来自 $form->getMessages() 等的错误消息。
给我上色难倒