我有代码
$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 设置为德语时,他还可以输入诸如 ä、ö 和 ü 之类的字符以及来自英文字母表的字符。