我需要一个函数来验证输入的日期。输入的日期格式是否正确。我浏览了一下网页,得到了一个正则表达式。它工作正常,除了当你输入12/12/YYYY(在任何年份)时,它会显示错误,说这不是一个有效的日期。
bool IsDate(string date)
{
Match dobMatch = Regex.Match(date, @"^(((0[1-9]|[12]\d|3[01])\/(0[13578]|1[02])\/((19|[2-9]\d)\d{2}))|((0[1-9]|[12]\d|30)\/(0[13456789]|1[012])\/((19|[2-9]\d)\d{2}))|((0[1-9]|1\d|2[0-8])\/02\/((19|[2-9]\d)\d{2}))|(29\/02\/((1[6-9]|[2-9]\d)(0[48]|[2468][048]|[13579][26])|((16|[2468][048]|[3579][26])00))))$");
if (!dobMatch.Success)
{return true;}
else
{return false;}
}我
发布于 2010-11-15 17:02:33
Try DateTime.TryParse()**.**
这将为您解析日期。如果要用来分析日期的区域性,此方法允许您传递CultureInfo。
或者,如果您真的想使用正则表达式,可以看看 .,它是一个全面的正则表达式库,每个正则表达式都有评级。
发布于 2010-11-15 17:03:13
为什么不使用DateTime.TryParse或DateTime.TryParseExact要比使用正则表达式简单得多。
发布于 2010-11-15 17:03:21
使用:
^([0]?[1-9]|[1|2][0-9]|[3][0|1])[./-]([0]?[1-9]|[1][0-2])[./-]([0-9]{4}|[0-9]{2})$或转到以下链接,http://regexlib.com/DisplayPatterns.aspx?cattabindex=4&categoryId=5
https://stackoverflow.com/questions/4182776
复制相似问题