zend验证器正则表达式

| 我正在尝试在像这样的zend表单元素上使用正则表达式验证器 -
    $textarea = $this->createElement('text','scores');

    $textarea->setLabel('Enter a comma separated list of numbers');

    $textarea->setDecorators(
            array('ViewHelper',
                array('HtmlTag', 
                    array('tag' => 'div',
                          'class'=>'scores'
                    )
                )
            )
    );
    $textarea->addDecorator('Label')
        ->setRequired(true)
        ->addFilter(new Zend_Filter_StringTrim())
        ->addValidator('regex',true,array('^d{1,3}([,]d{1,3})*$'))
        ->addErrorMessage('Please enter a comma separated list of numbers');
我只是想验证文本区域是否包含逗号分隔数字列表。 目前我在使用模式时出现“内部错误”^ d {1,3}([,] d {1,3})* $'“。 我想正则表达式有问题吗? 任何帮助,将不胜感激 :) 谢谢, 皮特     
已邀请:
尝试转义反斜杠:
'^\d{1,3}(,\d{1,3})*$'
您不需要逗号周围的括号。 此外,您可能希望允许数字和分隔符之间的空格:
'^\s*\d{1,3}(\s*,\s*\d{1,3})*\s*$'
    
您需要为开始和结束正则表达式添加符号。例如:
->addValidator('regex',true,array('#^\d{1,3}([,]\d{1,3})*$#'))
    
你需要分隔符。但不要逃避你的斜线:)     
恕我直言,你正在你的正则表达式结束时缺少斜杠“/”。我不是专家,但这对我有用:
->addValidator(new Zend_Validate_Regex('/^[a-zA-Z0-9][a-zA-Z0-9 ._-]{1,31}/'));
    

要回复问题请先登录注册