现在的位置: 首页 > 综合 > 正文

验证数字,日期,邮件地址的正则表达式

2013年09月21日 ⁄ 综合 ⁄ 共 3816字 ⁄ 字号 评论关闭

/// <summary>
        /// 正则表达式判断是否为数字
        /// </summary>
        /// <param name="strNumber"></param>
        /// <returns></returns>
        public static bool IsNumber(string strNumber)
        {
            //^[-+]?[1-9]/d*/.?[0]*$
            Regex objNotNumberPattern = new Regex("[^0-9.-]");
            Regex objTwoDotPattern = new Regex("[0-9]*[.][0-9]*[.][0-9]*");
            Regex objTwoMinusPattern = new Regex("[0-9]*[-][0-9]*[-][0-9]*");
            String strValidRealPattern = "^([-]|[.]|[-.]|[0-9])[0-9]*[.]*[0-9]+$";
            String strValidIntegerPattern = "^([-]|[0-9])[0-9]*$";
            Regex objNumberPattern = new Regex("(" + strValidRealPattern + ")|(" + strValidIntegerPattern + ")");

            return !objNotNumberPattern.IsMatch(strNumber) &&
            !objTwoDotPattern.IsMatch(strNumber) &&
            !objTwoMinusPattern.IsMatch(strNumber) &&
            objNumberPattern.IsMatch(strNumber);
        }

        /**//// <summary>
        /// 正则表达式判断是否为日期
        /// 验证格式:
        /// YYYY-MM
        /// YYYY-MM(M)-DD(M)
        /// YYYYMMDD      
        /// </summary>
        /// <param name="date"></param>
        /// <returns></returns>
        public static bool IsDate(string date)
        {
            //(([0-9]{4}-)([0-9]{1,2}-)[0-9]{1,2})
            Regex ymPattern = new Regex(@"^/d{4}-?(?:0[1-9]|1[0-2])$");
            Regex yyyyMMdd = new Regex(@"^((/d{2}(([02468][048])|([13579][26]))[/-///s]?((((0?[13578])|(1[02]))[/-///s]?((0?[1-9])|([1-2][0-9])|(3[01])))|(((0?[469])|(11))[/-///s]?((0?[1-9])|([1-2][0-9])|(30)))|(0?2[/-///s]?((0?[1-9])|([1-2][0-9])))))|(/d{2}(([02468][1235679])|([13579][01345789]))[/-///s]?((((0?[13578])|(1[02]))[/-///s]?((0?[1-9])|([1-2][0-9])|(3[01])))|(((0?[469])|(11))[/-///s]?((0?[1-9])|([1-2][0-9])|(30)))|(0?2[/-///s]?((0?[1-9])|(1[0-9])|(2[0-8]))))))"); //日期部分
           
            return !ymPattern.IsMatch(date) &&
                yyyyMMdd.IsMatch(date);
        }

        /**//// <summary>
        /// 正则表达式判断是否为日期
        /// 验证格式:    
        /// YYYY-MM(M)-DD(M) HH:MM
        /// YYYYMMDD HH:MM
        /// </summary>
        /// <param name="date"></param>
        /// <returns></returns>
        public static bool IsDateTime(string date)
        {
            string regex = @"^((/d{2}(([02468][048])|([13579][26]))[/-///s]?((((0?[13578])|(1[02]))[/-///s]?((0?[1-9])|([1-2][0-9])|(3[01])))|(((0?[469])|(11))[/-///s]?((0?[1-9])|([1-2][0-9])|(30)))|(0?2[/-///s]?((0?[1-9])|([1-2][0-9])))))|(/d{2}(([02468][1235679])|([13579][01345789]))[/-///s]?((((0?[13578])|(1[02]))[/-///s]?((0?[1-9])|([1-2][0-9])|(3[01])))|(((0?[469])|(11))[/-///s]?((0?[1-9])|([1-2][0-9])|(30)))|(0?2[/-///s]?((0?[1-9])|(1[0-9])|(2[0-8]))))))"; //日期部分
            regex += @"(/s(((0?[0-9])|([1-2][0-3]))/:([0-5]?[0-9])((/s)|(/:([0-5]?[0-9])))))?$"; //时间部分
            System.Text.RegularExpressions.RegexOptions options = ((System.Text.RegularExpressions.RegexOptions.IgnorePatternWhitespace | System.Text.RegularExpressions.RegexOptions.Multiline) | System.Text.RegularExpressions.RegexOptions.IgnoreCase);
            System.Text.RegularExpressions.Regex reg = new System.Text.RegularExpressions.Regex(regex, options);

            return reg.IsMatch(date);
        }

        public static bool IsEmail(string mail)
        {
            Regex reg = new Regex(@"^([a-zA-Z0-9_/-/.]+)@((/[[0-9]{1,3}/.[0-9]{1,3}/.[0-9]{1,3}/.)|(([a-zA-Z0-9/-]+/.)+))([a-zA-Z]{2,4}|[0-9]{1,3})(/]?)$");

            return reg.IsMatch(mail);
        }

        /**//// <summary>
        /// 正则表达式是否为网址,验证格式:
        /// wwww.xxx.xxx
        /// xxx.xxx.xxx
        /// http://www.xxx.xxx
        /// http://xxx.xxx.xxx
        /// </summary>
        /// <param name="uri"></param>
        /// <returns></returns>
        public static bool IsUri(string uri)
        {
            Regex reg = new Regex(@"^(((ht|f)tp(s?))/://)?((([a-zA-Z0-9_/-]{2,}/.)+[a-zA-Z]{2,})|((?:(?:25[0-5]|2[0-4]/d|[01]/d/d|/d?/d)(?(/.?/d)/.)){4}))(:[a-zA-Z0-9]+)?(/[a-zA-Z0-9/-/._/?/,/'////+&amp;%/$#/=~]*)?$");
            return reg.IsMatch(uri);
        }

抱歉!评论已关闭.