C#正則表達式判斷輸入日期格式是否正確

using System.Text.RegularExpressions

 

/// <summary>
       
/// 是否爲日期型字符串
       
/// </summary>
       
/// <param name="StrSource">日期字符串(2008-05-08)</param>
       
/// <returns></returns>
        public static bool IsDate(string StrSource)
        {
           
return Regex.IsMatch(StrSource, @"^((((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-9]))|(((1[6-9]|[2-9]/d)(0[48]|[2468][048]|[13579][26])|((16|[2468][048]|[3579][26])00))-0?2-29-))$");
        }

       
/// <summary>
       
/// 是否爲時間型字符串
       
/// </summary>
       
/// <param name="source">時間字符串(15:00:00)</param>
       
/// <returns></returns>
        public static bool IsTime(string StrSource)
        {
           
return Regex.IsMatch(StrSource, @"^((20|21|22|23|[0-1]?/d):[0-5]?/d:[0-5]?/d)$");
        }

       
/// <summary>
       
/// 是否爲日期+時間型字符串
       
/// </summary>
       
/// <param name="source"></param>
       
/// <returns></returns>
        public static bool IsDateTime(string StrSource)
        {
           
return Regex.IsMatch(StrSource, @"^(((((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-)) (20|21|22|23|[0-1]?/d):[0-5]?/d:[0-5]?/d)$ ");
        }

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章