使用zendframework v2,我遇到了由Form工厂创建的字段上的正则表达式验证器的问题。所有其他字段(使用相同的模式)都可以顺利运行。
任何提示或指示都表示赞赏。
$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生成form,我还创建了validation filter,然后使用controller来处理正确的表单提交。
我遇到的问题是上面的inputFilter对象处理“organizationName”正则表达式过滤器。
虽然我在表格定义和 [a-z0-9& -_。,@] {3,25} 的输入过滤器中使用的正则表达式模式都没有处理字符串 Intl。 Widgets Inc. 即使我没有收到来自$ form-> getMessages()等的错误消息。
让我染色