1 概述 第一点需要说明的,不管是,还是,已经有很成熟的日历控件,无论从易用性还是扩展性的角度,最好还是用日历控件来实现日期的选择和校验. 前几天在CSDN的多个版块看到需要日期正则化的帖子,于是整理了这篇文章和大家一起讨论交流。 如有遗漏或错误,敬请指正。 日期正则化一般用于对格式有要求且数据不是用户直接输入的情况。 由于应用场景不同,写的规则也不同,复杂度自然也不同。 常规写作需要根据具体情况具体分析。 一个基本原则是:只写合适的,不写复杂的。 对于日期提取,只要能和非日期区分开来,就写最简单的正则化,比如\d{4}-\d{2}-\d{2},如果能唯一定位yyyy-MM在 可以使用-dd格式的日期进行提取。 对于校验,只校验字符组成和格式意义不大,还要加上规则的校验。 由于闰年的存在,日期校验的规律性变得更加复杂。 让我们首先检查日期的有效范围以及什么是闰年。 2 日期规则 2.1 日期有效范围 不同的应用场景,日期的有效范围不同。 MSDN 中定义的有效对象范围是:0001-01-01 00:00:00 到 9999-12-31