正则表达式 – 英国日期正则表达式

参见英文答案 > Does anyone know of a reg expression for uk date format                                    7个
我正在尝试创建一个验证英国日期格式的正则表达式.我有以下内容:

(0[1-9]|[12][0-9]|3[01])[- /.](0[1-9]|1[012])[- /.](19|20)\d\d

这非常适合验证:09/12/2011.但如果日期是:9/12/2011,它将无法正确验证.是否有正则表达式允许我使用单个数字和两个数字作为日期部分?例如“09”和“9”.

最佳答案
只需使前导0可选:

(0?[1-9]|[12][0-9]|3[01])[- /.](0?[1-9]|1[012])[- /.](19|20)\d\d

但是你需要一个额外的验证步骤 – 这个正则表达式当然不会检查无效日期,如31-02-2000等.虽然可以在正则表达式中执行此操作,但不建议这样做,因为以编程方式执行此操作要容易得多,那个正则表达式将会是怪异的. Here is a date validating regex(虽然使用mmddyyyy格式)来显示我的意思.

转载注明原文:正则表达式 – 英国日期正则表达式 - 代码日志