日期正则表达式匹配2或1位数字日期或月份

时间:2014-10-17 12:09:24

标签: regex

我有这个正则表达式在所有条件时间格式匹配mm / dd / yyyy是完美的,但我需要稍微修改它

如果有人插入09/04/1980它的工作完美,但这个5/9/1990(1位数)会出错:(

有人可以帮我解决吗?

这是我现在的正则表达式:

(?:(?:0[1-9]|1[0-2])/(?:0[1-9]|1[0-9]|2[0-9])|(?:(?!02)(?:0[1-9]|1[0-2])-(?:30))|(?:(?:0[13578]|1[02])-31))/(?:19|20)[0-9]{2}

2 个答案:

答案 0 :(得分:1)

(?:(?:0?[1-9]|1[0-2])\/(?:0?[1-9]|1[0-9]|2[0-9])|(?:(?!02)(?:0?[1-9]|1[0-2])-(?:30))|(?:(?:0?[13578]|1[02])-31))\/(?:19|20)[0-9]{2}

试试这个.Made 0可选。

参见演示。

http://regex101.com/r/dZ1vT6/65

答案 1 :(得分:0)

请勿使用正则表达式。因为你没有指定语言,所以我会提供pesudocode。您只需要在\上拆分并将数组元素转换为数字,然后执行简单的if条件。

if(arr[0] < 0 && arr[0] > 32){
   // validated the month
}