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.
困惑した私を着色