日期:2014-05-18  浏览次数:20835 次

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)
判断。
------解决方案--------------------
探讨

验证日期用正则不是最好的方法,可以用
DateTime dt;
DataTime.TryParse("日期",out dt)
判断。

------解决方案--------------------
探讨

验证日期用正则不是最好的方法,可以用
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)$
------解决方案--------------------
参考

正则应用之——日期正则表达式