C#正则表达式验证是否日期

C#正则表达式验证是否日期

通常我们在用C#编写系统程序或者Web开发时,都会遇到需要验证输入的字符串是否是日期的情况,下面为大家介绍一种非常全面的用正则表达式验证日期的方法: 

  •  
  •  
  • C# 代码   复制
  • 
        public static bool IsDate(string strDate)
        {
            if (string.IsNullOrEmpty(strDate))
                return false;
            string s_reg = @"^(?ni:(?=\d)((?'year'((1[6-9])|([2-9]\d))\d\d)(?'sep'[/.-])(?'month'0?[1-9]|1[012])\2
    
    (?'day'((?<!(\2((0?[2469])|11)\2))31)|(?<!\2(0?2)\2)(29|30)|((?<=((1[6-9]|[2-9]\d)(0[48]|
    
    [2468][048]|[13579][26])|(16|[2468][048]|[3579][26])00)\2\3\2)29)|((0?[1-9])|(1\d)|(2[0-
    
    8])))(?:(?=\x20\d)\x20|$))?((?<time>((0?[1-9]|1[012])(:[0-5]?\d){0,2}(\x20[AP]M))|([01]?
    
    \d|2[0-3])(:[0-5]?\\d){1,2}))?)$";
            Regex reg = new Regex(s_reg);
            if (reg.IsMatch(strDate.ToLower()))
                  return true;
            else
                  return false;
         }