正则表达式验证日期和月份

时间:2015-04-20 07:55:11

标签: c# regex datetime

我试图以下面的格式验证日期和月份:

MM/dd

现在,我正在使用此正则表达式来验证:

(0[1-9]|1[0-2])\/(3[0-1]|2[0-9]|1[0-9]|0[1-9])

正则表达式成功验证了这些格式:

    //Below are valid dates    
    09/05
    01/01
    12/30
    10/30
    //Below are invalid dates
    11/31
    09/31

如何修改正则表达式以便它还检查月中的天数?

1 个答案:

答案 0 :(得分:4)

我认为正则表达式不是正确的方法。使用DateTime解析而不是MM/yy格式以及将/作为DateSeparator的文化。

string s = "12/31";
DateTime dt;
if(DateTime.TryParseExact(s, "MM/dd", CultureInfo.InvariantCulture,
                          DateTimeStyles.None, out dt))
{
    // Valid
}

顺便说一句,SeptemberNovember30天,而不是31。这就是09/3111/31无效的原因。