1

私はこのような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})*$'の使用中に内部エラーが発生しました。

正規表現に何か問題があると思いますか?

どんな助けもいただければ幸いです:)

ありがとう、ピート

4

4 に答える 4

0

true 区切り文字が必要です。ただし、スラッシュをエスケープしないでください:)

于 2012-11-27T08:40:07.360 に答える
0

start と end regexp のシンボルを追加する必要があります。例えば:

->addValidator('regex',true,array('#^\\d{1,3}([,]\\d{1,3})*$#'))
于 2012-11-03T19:52:17.253 に答える
0

バックスラッシュをエスケープしてみてください:

'^\\d{1,3}(,\\d{1,3})*$'

コンマを囲む括弧は必要ありません。

また、数字とセパレーターの間に空白を許可することもできます。

'^\\s*\\d{1,3}(\\s*,\\s*\\d{1,3})*\\s*$'
于 2011-03-15T07:19:16.550 に答える
0

私見では、正規表現の最後にスラッシュ「/」がありません。私は専門家ではありませんが、これは私のために働いています: ->addValidator(new Zend_Validate_Regex('/^[a-zA-Z0-9][a-zA-Z0-9 ._-]{1,31}/'));

于 2014-03-16T07:03:15.607 に答える