我的字符串格式是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的表达式吗?
答案 0 :(得分:7)
如果您要验证日期是否采用M/d/yyyy
格式,那么DateTime.TryParseExact是一个比Regex更好的解决方案。就像是。
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
}
答案 1 :(得分: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}))$
您可以从this site
中找到更多内容答案 2 :(得分:-1)
^([0]?[1-9]|[1][0-2])[./-]([0]?[1-9]|[1|2][0-9]|[3][0|1])[./-]([0-9]{4}|[0-9]{2})$