Zend framework Zend_Validate_Regex,无法设置自定义错误消息

Zend framework Zend_Validate_Regex,无法设置自定义错误消息,zend-framework,zend-form,zend-form-element,Zend Framework,Zend Form,Zend Form Element,我在为Zend_Validate_正则表达式设置自定义错误消息时遇到了一些麻烦 我知道我在语法方面迷失了方向,因此我的元素声明如有任何帮助,将不胜感激: $this->addElement('text', 'email', array( 'label' => 'E-Mail', 'title' => 'email..', 'required' => true, 'validators' => array(

我在为Zend_Validate_正则表达式设置自定义错误消息时遇到了一些麻烦

我知道我在语法方面迷失了方向,因此我的元素声明如有任何帮助,将不胜感激:

$this->addElement('text', 'email', array(
    'label' => 'E-Mail',
    'title' => 'email..',
    'required' => true,           
    'validators' => array(
        array('Regex',
            true,
            array('/[A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,4}/i'),
            'messages' => array(Zend_Validate_Regex::NOT_MATCH,
                'my not match message',
                Zend_Validate_Regex::INVALID  => 'my invalid message',
                Zend_Validate_Regex::ERROROUS => 'my errorous message',
            )
        )
    )
));
我也尝试过:

'messages'=>array(
    'regexNotMatch'=>'Your own custom error message'
)

但是我总是会收到默认的错误消息。

我非常喜欢这种OO方式来创建表单。自定义消息的工作方式如下:

$form = new Zend_Form();
$regex = new Zend_Validate_Regex('/[A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,4}/i');
$regex->setMessages(array(
    Zend_Validate_Regex::NOT_MATCH => 'my not match message',
    Zend_Validate_Regex::INVALID   => 'my invalid message',
    Zend_Validate_Regex::ERROROUS  => 'my errorous message'
));
$el = new Zend_Form_Element_Text('email');
$el->setLabel('E-Mail')
    ->setRequired(true)
    ->addValidator($regex);
$form->addElement($el);
注意:为什么要使用Regex验证程序而不是EmailAddress?

尝试以下方法:

$this->addElement('text', 'email', array(
    'label' => 'E-Mail',
    'title' => 'email..',
    'required' => true,           
    'validators' => array(
        array('Regex',
            true,
            array(
                '/[A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,4}/i',
                'messages' => array(
                    Zend_Validate_Regex::NOT_MATCH => 'my not match message',
                    Zend_Validate_Regex::INVALID  => 'my invalid message',
                    Zend_Validate_Regex::ERROROUS => 'my errorous message',
            )
        )
    )
));

它仍然返回默认消息:我们必须比较同一通道中的不同值。因此,他们不是我们不使用EmailAddress的原因,但在其他地方,我们使用regex验证其他内容,并面临同样的问题/