需要在用户提交的字符串中匹配日期 它应该使用这些不同的格式
jan 1 2000
january 1 2000
jan. 1 2000
1/1/2000
2000
january
你会怎么写这个正则表达式?
答案 0 :(得分:5)
我不会使用RegExp:
DateTime attempt;
if (DateTime.TryParse(inputDate, out attempt)
{
// You're good to go.
}
但这会与“1月”或“2000”的“日期”相悖。
答案 1 :(得分:2)
即使这些是唯一允许的格式,使用正则表达式也很难,因为它涉及检查月份名称是否有效,检查日期是否在给定月份(4月31日等)有效,闰年等
像其他人建议的那样使用DateTime类。
答案 2 :(得分:1)
您先看过DateTime.TryParse吗?可能它会使你免于使用正则表达式,除了一些特殊情况。
答案 3 :(得分:1)
我的事情太复杂了,无法用正则表达式进行验证。
更好地使用DateTime.TryParse
由于31/30/29/28天/月以及September 1752等特殊情况,使用正则表达式确认日期真的很难。
答案 4 :(得分:1)
这是胜利还是网络应用程序?如果对于Windows只使用DateTime.TryParse,但如果它是用于web,则使用javascript代替。
对于javascript,请参阅this post