我正在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
选项并用''
替换'
,但两者都不起作用。有什么想法吗?
缺少右括号(可能在最后的?
之后)