winform一个验证日期的正则
网上找的
- C# code
#region 日期验证(YYYY-MM-DD) /// <summary> /// 日期验证(YYYY-MM-DD) /// </summary> /// <param name="InputStr">要验证的字符</param> /// <returns></returns> public static bool ValidateDataTime(string InputStr) { if (InputStr != "") { if (Regex.IsMatch(InputStr.Trim(' '), @"^((((1[6-9]|[2-9]\d)\d{2})-(0?[13578]|1[02])-(0?[1-9]|[12]\d|3[01]))|(((1[6-9]|[2-9]\d)\d{2})-(0?[13456789]|1[012])-(0?[1-9]|[12]\d|30))|(((1[6-9]|[2-9]\d)\d{2})-0?2-(0?[1-9]|1\d|2[0-8]))|(((1[6-9]|[2-9]\d)(0[48]|[2468][048]|[13579][26])|((16|[2468][048]|[3579][26])00))-0?2-29-))$")) return true; else return false; } return false; } #endregion
今天这个日期验证通不过,2012-02-29哪位大侠改改
[解决办法]
验证日期用正则不是最好的方法,可以用
DateTime dt;
DataTime.TryParse("日期",out dt)
判断。
[解决办法]
[解决办法]
[解决办法]
^((?!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)$
[解决办法]
参考
正则应用之——日期正则表达式