似乎Zend_Validate_Date
根本无法正常工作。例如:
$validator = new Zend_Validate_Date(array('format' => 'yyyy'));
这是一个简单的验证器,只能接受四位数的年份,但$validator->isValid('1/2/3')
返回true!真的,Zend?
或者这个怎么样:
$otherValidator = new Zend_Validate_Date(array('format' => 'mm/dd/yyyy'));
即使使用上述代码,$otherValidator->isValid('15/13/10/12/1222')
也会返回true
!
我正在使用Zend Framework 1.11.9。它只是我还是一个非常糟糕的验证课程? (更新:换句话说,我的代码是否有问题,或者这是一个应该提交的错误?)
答案 0 :(得分:6)
正如上面的评论所说,显然这个类有一个错误。以下是我提出的解决方法,使用Zend_Validate_Regex
:
$validator = new Zend_Validate_Regex(
array('pattern' => '/^[0-9]{2}\/[0-9]{2}\/[0-9]{4}$/')
);
$validator->setMessage(
"Date does not match the format 'mm/dd/yyyy'",
Zend_Validate_Regex::NOT_MATCH
);
希望这会有助于其他人。请注意,我只想要斜杠作为分隔符,而不是点或破折号。