5

看来Zend_Validate_Date只是根本无法正常工作。例如:

$validator = new Zend_Validate_Date(array('format' => 'yyyy'));

这是一个简单的验证器,应该只接受四位数的年份,但$validator->isValid('1/2/3')返回 true!真的吗,岑德?

或者这个怎​​么样:

$otherValidator = new Zend_Validate_Date(array('format' => 'mm/dd/yyyy'));

即使使用上面的代码,也会$otherValidator->isValid('15/13/10/12/1222')返回true

我正在使用 Zend Framework 1.11.9。只是我还是这是一个非常糟糕的验证课程?(更新:换句话说,我的代码是否有问题,或者这是一个应该提交的错误?)

4

1 回答 1

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
);

希望这会帮助别人。请注意,我只想要斜杠作为分隔符,而不是点或破折号。

于 2012-01-12T18:32:22.360 回答