-2

我的字符串格式是 M/d/yyyy。这意味着月份和日期数字前面不会有零。例如:2012 年 9 月 23 日、2012 年 7 月 9 日等

我试过了:

^((((0?[1-9]|[12]\d|3[01]).-/.-/)|((0?[1-9]|[12]\d|30) .-/.-/)|((0?[1-9]|1\d|2[0-8])[.-/]0?2.-/)|(29[.-/]0 ?2.-/))|(((0[1-9]|[12]\d|3[01])(0[13578]|1[02])((1[6-9]|[ 2-9]\d)?\d{2}))|((0[1-9]|[12]\d|30)(0[13456789]|1[012])((1[6- 9]|[2-9]\d)?\d{2}))|((0[1-9]|1\d|2[0-8])02((1[6-9]| [2-9]\d)?\d{2}))|(2902((1[6-9]|[2-9]\d)?(0[48]|[2468][048]| [13579][26])|((16|[2468][048]|[3579][26])00)|00))))$

但我想这是为 d/M/yyyy 准备的。

有人有 M/d/yyyy 的表达吗?

4

3 回答 3

7

如果您尝试验证日期是否采用格式,M/d/yyyyDateTime.TryParseExact是比正则表达式更好的解决方案。就像是。

string str = "9/23/2012";
DateTime dt;
if(DateTime.TryParseExact(str,
                          "M/d/yyyy",
                          CultureInfo.InvariantCulture,
                          DateTimeStyles.None, 
                          out dt))
{
    //valid date
}
else
{
    //Invalid date
}
于 2012-11-16T07:13:18.080 回答
1

尝试使用这个表达式

^((0[1-9])|(1[0-2])|[1-9])/(([1-9])|(0[1-9])|(1[0- 9])|(2[0-9])|(3[0-1]))/(([0-9]{2})|([1-9][0-9]{3}) )$

你可以从这个网站找到更多

于 2012-11-16T07:18:02.737 回答
-1

感谢您的所有回复,你们都帮助了我。我的 qns 的表达式是:

^([0]?[1-9]|[1][0-2])[./-]([0]?[1-9]|[1|2][0-9]|[3][0|1])[./-]([0-9]{4}|[0-9]{2})$
于 2012-11-16T07:32:20.990 回答