我们要检验的日期格式:XXXX-XX-XX(X为数字)
[\d]{4}-[\d]{2}-[\d]{2}
这个是我看到的一个日期验证的正则表达式。
看起来能实现,因为
2006-6-6
肯定是不符合的,而
2006-06-06
肯定是符合的。
但是,我们来看,
2006-00-00
也肯定是符合的,但是,有意义吗?
2006-99-99
也肯定是符合的,但是,有意义吗?
答案,大家都知道,肯定没有意义。所以,我觉得这个表达式还有要改进的地方。
问题的关键是数值大小的限制,如何来限制?
我把它改进了一下:
[\d]{4}-[0-1][0-9]-[0-3][0-9]
我们乍一看,觉得可行,
2006-19-39
肯定符合,但是没有意义。
看来,还是有问题。
到现在,我也没有想清楚这个看似简单的问题如何来解决。
如果用这个表达式来检验日期的话,是不行的,还需要你进行数值范围的验证。
如果哪位朋友知道的话,请指点一二。谢谢。
|----------------------------------------------------------------------------------------|
版权声明 版权所有 @zhyiwww
引用请注明来源 http://www.blogjava.net/zhyiwww
|----------------------------------------------------------------------------------------|
posted on 2007-03-19 11:07
zhyiwww 阅读(6081)
评论(6) 编辑 收藏 所属分类:
正则表达式