将电子邮件验证正则表达式传递给Zend_Validate_Regex时“使用模式时出现内部错误”

时间:2012-07-07 22:56:57

标签: php regex zend-framework zend-form email-validation

我正在使用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选项并将\替换为\\,但都不起作用。有什么想法吗?

1 个答案:

答案 0 :(得分:0)

缺少右括号(大概是在最终?之后)