我正在 Zend Forms 中构建一个表单,并在尝试添加电子邮件验证正则表达式时收到以下错误:
使用模式时出现内部错误
代码是:
$email->setLabel('Email:')
->setRequired()
->addValidator(new Zend_Validate_Regex('/^(("[\w-\s]+")|([\w-]+(?:\.[\w-]+)*)|("[\w-\s]+")([\w-]+(?:\.[\w-]+)*))(@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$)|(@\[?((25[0-5]\.|2[0-4][0-9]\.|1[0-9]{2}\.|[0-9]{1,2}\.))((25[0-5]|2[0-4][0-9]|1[0-9]{2}|[0-9]{1,2})\.){2}(25[0-5]|2[0-4][0-9]|1[0-9]{2}|[0-9]{1,2})\]?$/i'))
->addValidator(new Zend_Validate_StringLength(array(3, 255)))
->addFilter(new Zend_Filter_StripTags())
->addFilter(new Zend_Filter_StringTrim());
这个正则表达式应该验证正确的电子邮件地址,并且它可以在其他地方工作(例如在 JS 中)。
我试图删除i
选项并替换\
为,\\
但都不起作用。有任何想法吗?