我有一个 type="email"的输入框,并使用 zend validator 对其进行验证
<input type="email" name="email" > email </input>
'email' => array(
'required' => true,
'validators' => array(
array(
'name' => 'Regex',
'options' => array(
'pattern'=>'/^[a-zA-Z0-9.!#$%&\'*+\/=?^_`{|}~-]+@[a-zA-Z0-9-]+(?:\.[a-zA-Z0-9-]+)*$/',
'messages' => array(
\Zend\Validator\Regex::NOT_MATCH=>'Please fill correct email ',
)
),
'break_chain_on_failure' => true
),
),
问题是如果我使用另一个数组来检查
IS_EMPTY
zend regex 再次不显示上述错误,而是显示默认的 zend regex 错误,如果我删除 IS_EMPTY 那么它工作正常。正则表达式错误是
1. input does not match to expression '/^[a-zA-Z0-9.!#$%&\'*+\/=?^_`{|}~-]+@[a-zA-Z0-9-]+(?:\.[a-zA-Z0-9-]+)*$/'
完全无法理解为什么在没有空检查的情况下它可以正常工作并且不能与它一起工作
最佳答案
不需要使用notEmpty,只需将该字段设置为“必填”并指定错误消息即可:
$this->add(array(
'name' => 'email',
'required' => true,
'error_message' => 'Please entry e-mail.',
'validators' => array(
array(
'name' => 'EmailAddress',
'options' => array (
'messages' => array(EmailAddress::INVALID => 'Please specify a valid e-mail.'),
),
'break_chain_on_failure' => true,
),
),
));
关于regex - ZF2 表单验证无法正常用于电子邮件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20813519/