首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

正则,验证yyyy-MM-dd

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

求一个正则,验证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
{
//不符合
}

热点排行