0

嗨,我正在尝试为日期 mm/dd/yyyy C# 编写正则表达式。我有这个

^(0[1-9]|1[012])[- /.](0[1-9]|[12][0-9]|3[01])[- /.](19|20)\d\d$

但它不起作用
在此处输入图像描述

如何做到这一点,它将适用于 2013 年 3 月 1 日和 2013 年 3 月 1 日

4

2 回答 2

6

不要使用正则表达式,使用DateTime.TryParseor DateTime.TryParseExact

还要注意当前的文化和用户的期望。美国人使用“MM/dd/yyyy”,但世界其他地区(通常)使用“dd/MM/yyyy”,对于大范围的日期,两者都无法区分。

于 2013-03-22T01:42:03.307 回答
1

我同意您应该DateTime为此使用方法。但是如果你想让前导零可选,你可以?在它们之后添加一个,如下所示:

^(0?[1-9]|1[012])[- /.](0?[1-9]|[12][0-9]|3[01])[- /.](19|20)\d\d$
于 2013-03-22T01:43:34.993 回答