私はコードを持っています
$this->addValidator('Regex', false,
array('/^[A-Za-z0-9 _]*[A-Za-z0-9][A-Za-z0-9 _]*$/'));
データが英数字かどうかを検証するために使用されますが、機能していません。
どうやってするの?
私はコードを持っています
$this->addValidator('Regex', false,
array('/^[A-Za-z0-9 _]*[A-Za-z0-9][A-Za-z0-9 _]*$/'));
データが英数字かどうかを検証するために使用されますが、機能していません。
どうやってするの?
この目的のために、標準の Alnum バリデーターを使用しています。
このようなフォーム定義では:
$this->addElement('text', 'username', array(
'label' => 'Uživatelské jméno',
'required' => true,
'validators' => array(
array('Alnum'),
array('StringLength', false, array(2, 50))
)
));
あなたの記法では、次のようなものがうまくいくはずです:
$this->addValidator('Alnum');
Zend Framework のページで、可能な引数/その他の標準バリエータを参照してください。
正規表現は正常に機能し、バリデーターも同様です。正しい場所で使用したことを確認してください。
例:
$login = new Zend_Form_Element_Text('uesrlogin');
$login->setLabel('Enter username :')
->setRequired(true)
->addFilter('StripTags')
->addValidator('Regex', false, array('/^[A-Za-z0-9 _]*[A-Za-z0-9][A-Za-z0-9 _]*$/'));
@Kamil が指摘したように、Zend_Validate_Alnum バリデーターを使用することが、英数字をチェックする最善の方法です。プロジェクトに多言語サポートを追加します。
Zend_Validate_Alnum を使用すると、ユーザーがブラウザ内で設定した言語を使用して、許可された文字が設定されます。これは、ユーザーがドイツ語に de を設定すると、英語のアルファベットの文字に加えて、ä、ö、ü などの文字も入力できることを意味します。