读书人

正则,验证yyyy-MM-dd

发布时间: 2012-04-28 11:49:53 作者: rapoo

求一个正则,验证yyyy-MM-dd
问个正则问题``
可以输入合法的年月日,只需精确到日
4位年,1-12的月,1-31的日
2012-04-23 可以
2012-4-3 可以
2012-14-3 错误
2012-4-33 错误

Regex regex = new Regex(@"");
Match match = regex.Match(mydate);
if (match.Success)
{
success = true;
}

可以直接在这个代码上改```

[解决办法]
\d{4}-[0-9]?[1-9]-([0-2]\d|3[0-1])
[解决办法]
不必用正则啊,这样就行了:

C# code
        string s = "2012-04-23";        DateTime dt;        if (DateTime.TryParseExact(s, "yyyy-MM-dd", null, DateTimeStyles.None, out dt))//验证通过
[解决办法]

日期用正则反而不好

C# code
  DateTime dt;  bool flag = DateTime.TryParse("时间字符串", out dt);    if(flag)  {     //符合  }  else  {     //不符合  }
[解决办法]
^((?!0000)[0-9]{4}-((0?[1-9]|1[0-2])-(0?[1-9]|1[0-9]|2[0-8])|(0[13-9]|1[0-2])-(29|30)|(0[13578]|1[02])-31)|([0-9]{2}(0[48]|[2468][048]|[13579][26])|(0[48]|[2468][048]|[13579][26])00)-02-29)$

说实话,这不是正则干的活
[解决办法]
探讨
不必用正则啊,这样就行了:

C# code
string s = "2012-04-23";
DateTime dt;
if (DateTime.TryParseExact(s, "yyyy-MM-dd", null, DateTimeStyles.None, out dt))
//验证通过

[解决办法]
探讨
日期用正则反而不好


C# code

DateTime dt;
bool flag = DateTime.TryParse("时间字符串", out dt);

if(flag)
{
//符合
}
else
{
//不符合
}

读书人网 >C#

热点推荐