Zend元素或Validator

时间:2014-07-07 07:54:47

标签: php zend-framework zend-form zend-validate

是否有zend表单元素或验证器方法可用于接受数字和字符的用户输入,例如525555CPG。或者我将不得不创建一个自定义的。

4 个答案:

答案 0 :(得分:1)

如果你是Zend_Form类,你可以使用它。

$myAlphanumericField = new Zend_Form_Element_Text('myfield',
                          array('placeholder' => 'Only letters and numbers'));
$myAlphanumericField        ->setLabel('My Numeric Field')
                                        ->setRequired(true)
                                        ->addFilter('StripTags')
                                        ->addValidator('alnum')
                                        ->getValidator('alnum')->setMessage(' Only letters and numbers are allowed');

希望这对你有用

答案 1 :(得分:1)

如果您的值必须是6位数后跟三个大写字母,您可以使用这样的正则表达式:

$test_pattern = "/^([0-9]{6})([A-Z]{3})$/";
$test_validator = new Zend_Validate_Regex(array('pattern' => $test_pattern));
$test_validator->setMessage("The value must be like '999999AAA'");

$test = new Zend_Form_Element_Text('test');
$test->addValidator($test_validator);

对于javascript部分,您可以使用这样的掩码,例如:Masked Input Plugin

在演示中,有一个'产品密钥'这可以帮助你。 :)

答案 2 :(得分:1)

你试过Zend_Validate_Alnum吗?我认为这是最好的方式。

答案 3 :(得分:0)

如果您不关心验证确切格式,特别是6个数字后跟3个字母,则可以使用Zend_Validate_Alnum。这比使用正则表达式验证器更灵活,但可能不够严格,无法满足您的需求。

$code = '525555CPG';

$validator = new Zend_Validate_Alnum();

if ($validator->isValid($code)) {
    echo $code . ' is a valid code';
} else {
    echo $code . ' is not a valid code';
}