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

Nul*_*ter 1 c# regex

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

MMM dd, yyyy

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

  ((Jan)|(Feb)|(Mar)|(Apr)|(May)|(Jun)|(Jul)|(Aug)|(Sep)|(Oct)|(Nov)|(Dec)){1}\s?\d{1,2},\s?\d{4}
Run Code Online (Sandbox Code Playgroud)

它工作正常.但它不会根据月份检查输入日期是否小于28,30或31.例如:12月有31天.如果用户输入的值大于31,则表达式必须捕获该值.任何使用常规表达来实现这一目标的想法?

JSB*_*ոգչ 5

您要执行的验证(不包括基于月份的无效日期范围)实际上不适合正则表达式.您应该解析月,日和年,然后根据解析的值进行验证.试图通过正则表达式来实现它将是痛苦的,难以维护.

或者,你考虑过只使用DateTime.Parse

  • DateTime.TryParseExact可能更适合这里. (2认同)