验证日期的正则表达式-C#

验证日期的正则表达式-C#,c#,regex,C#,Regex,我正在使用calenderExtender控件从用户处获取日期。用户可以手动编辑文本框。我正在使用RegularExpressionValidator验证输入日期。我需要的输入格式是 MM dd,yyyy 现在我使用下面所示的正则表达式来验证日期 ((Jan)|(Feb)|(Mar)|(Apr)|(May)|(Jun)|(Jul)|(Aug)|(Sep)|(Oct)|(Nov)|(Dec)){1}\s?\d{1,2},\s?\d{4} 它很好用。但它不检查输入日期是否小于28、30或31(

我正在使用calenderExtender控件从用户处获取日期。用户可以手动编辑文本框。我正在使用RegularExpressionValidator验证输入日期。我需要的输入格式是

MM dd,yyyy

现在我使用下面所示的正则表达式来验证日期

  ((Jan)|(Feb)|(Mar)|(Apr)|(May)|(Jun)|(Jul)|(Aug)|(Sep)|(Oct)|(Nov)|(Dec)){1}\s?\d{1,2},\s?\d{4}
它很好用。但它不检查输入日期是否小于28、30或31(基于月份)。示例:12月份有31天。如果用户输入的值大于31,则表达式必须捕获该值。
使用正则表达式实现此目的的任何想法???

您想要执行的验证(不包括基于月份的无效日期范围)确实不适合正则表达式。您应该解析月份、日期和年份,然后根据解析的值进行验证。试图通过正则表达式来实现这一点会很痛苦,也很难维持


或者,您是否考虑过只使用?

您想要执行的验证(不包括基于月份的无效日期范围)确实不适合正则表达式。您应该解析月份、日期和年份,然后根据解析的值进行验证。试图通过正则表达式来实现这一点会很痛苦,也很难维持


或者,您是否考虑过只使用?

如果您认为这不好,请等到您尝试支持闰年。是的,就像“我如何使用正则表达式(插入困难的任务)”问题一样,最好的方法是完全避免使用正则表达式。你能改用RangeValidator吗?否则,正如JSBangs所指出的,您可以使用带有DateTime解析方法的自定义验证器。

如果您认为这不好,请等到您尝试支持闰年。是的,就像“我如何使用正则表达式(插入困难的任务)”问题一样,最好的方法是完全避免使用正则表达式。你能改用RangeValidator吗?否则,正如JSBangs所指出的,您可以使用带有DateTime解析方法的自定义验证器。

DateTime.TryParseExact可能更适合此处。DateTime.TryParseExact可能更适合此处。