是否有zend表单元素或验证器方法可用于接受数字和字符的用户输入,例如525555CPG。或者我将不得不创建一个自定义的。
答案 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';
}