3

zendframework v2 を使用して、フォーム ファクトリによって作成されたフィールドの正規表現バリデータに問題が発生しました。他のすべてのフィールド (同じパターンを使用) は問題なく機能します。

ヒントや指針をいただければ幸いです。

            $inputFilter->add($factory->createInput([ 
            'name' => 'organizationName', 
            'filters' => array( 
                array('name' => 'StripTags'), 
                array('name' => 'StringTrim'), 
            ), 
            'validators' => array( 
                array(
                    'name' => 'NotEmpty',
                    'options' => array(
                        'messages' => array(
                            \Zend\Validator\NotEmpty::IS_EMPTY => 'Organization name field is empty',
                        ),
                    ),
                ),
                array(
                    'name' => 'Regex',
                    'options' => array(
                        'pattern' => '/^[a-z0-9 &-_\.,@]{3,25}$/i',
                        'messages' => array(
                            \Zend\Validator\Regex::INVALID => 'Invalid input, only a-z, 0-9 & - _ . characters allowed',
                        ),
                    ),
                ),
                array (
                    'name' => 'StringLength', 
                    'options' => array( 
                        'encoding' => 'UTF-8', 
                        'min' => '2', 
                        'max' => '25', 
                        'messages' => array(
                            \Zend\Validator\StringLength::TOO_SHORT => 'Organization name field must be at least 8 characters in length',
                            \Zend\Validator\StringLength::TOO_LONG => 'Organization name field must be no longer than 25 characters in length',
                        ),
                    ), 
                ), 
            ), 
        ])); 

追加の詳細: ZF2 を使用してフォームを生成しています。また、検証フィルターを作成し、コントローラーを使用して適切なフォーム送信を処理しています。

私が抱えている問題は、「organizationName」正規表現フィルターを処理する上記の inputFilter オブジェクトにあります。

フォーム定義と[a-z0-9 &-_.,@]{3,25}の入力フィルターの両方で使用する正規表現パターンは、文字列Intl. $form->getMessages() などからエラー メッセージが表示されないにもかかわらず、Widgets Inc.

困惑した私を着色

4

1 に答える 1