您的位置:首页 > 其它

正则表达式验证注册信息

2014-05-29 10:33 393 查看
  /// <summary>

        /// 检测是否有Sql危险字符

        /// </summary>

        /// <param name="str">要判断字符串</param>

        /// <returns>判断结果</returns>

        public static bool IsSafeSqlString(string source)

        {

            return !Regex.IsMatch(source, @"[-|;|,|\/|\(|\)|\[|\]|\}|\{|%|@|\*|!|\']");
        }

        /// <summary>

        /// 验证用户名

        /// </summary>

        /// <param name="source"></param>

        /// <returns>

        /// 0  空

        /// -1 用户名不能以数字开头

        /// -2 合法长度为6-18个字符

        /// -3 用户名只能包含_,英文字母,数字

        /// -4 用户名只能英文字母开头

        /// -5 用户名只能英文字母或数字结尾

        /// 1  合法用户名

        /// </returns>

        public static int IsUserName(string source)

        {

            if (string.IsNullOrEmpty(source)) return 0;

            if (Regex.IsMatch(source, @"^\d.*$", RegexOptions.IgnoreCase))

                //用户名不能以数字开头

                return -1;

            if (source.Length < 6 || source.Length > 18)

                //合法长度为6-18个字符

                return -2;

            if (!Regex.IsMatch(source, @"^\w+$", RegexOptions.IgnoreCase))

                //用户名只能包含_,英文字母,数字

                return -3;

            if (!Regex.IsMatch(source, @"^([a-z]|[A-Z])[0-9a-zA-Z_]+$", RegexOptions.IgnoreCase))

                //用户名只能英文字母开头

                return -4;

            if (!Regex.IsMatch(source, @"[0-9a-zA-Z]+$", RegexOptions.IgnoreCase))

                //用户名只能英文字母或数字结尾

                return -5;

            return 1;

        }

         

        /// <summary>

        /// 验证邮箱

        /// </summary>

        /// <param name="source"></param>

        /// <returns></returns>

        public static bool IsEmail(string source)

        {

            return Regex.IsMatch(source, @"^[A-Za-z0-9](([_\.\-]?[a-zA-Z0-9]+)*)@([A-Za-z0-9]+)(([\.\-]?[a-zA-Z0-9]+)*)\.([A-Za-z]{2,})$", RegexOptions.IgnoreCase);

        }

        public static bool HasEmail(string source)

        {

            return Regex.IsMatch(source, @"[A-Za-z0-9](([_\.\-]?[a-zA-Z0-9]+)*)@([A-Za-z0-9]+)(([\.\-]?[a-zA-Z0-9]+)*)\.([A-Za-z]{2,})", RegexOptions.IgnoreCase);

        }

      

        /// <summary>

        /// 验证QQ

        /// </summary>

        /// <param name="source"></param>

        /// <returns></returns>

        public static bool IsQQ(string source)

        {

            return Regex.IsMatch(source, @"^[1-9]\d{4,10}$", RegexOptions.IgnoreCase);

        }

        /// <summary>

        /// 验证日期

        /// </summary>

        /// <param name="source"></param>

        /// <returns></returns>

        public static bool IsDateTime(string source)

        {

            try

            {

                DateTime time = Convert.ToDateTime(source);

                return true;

            }

            catch

            {

                return false;

            }

        }

/// <summary>

        /// 验证手机号

        /// </summary>

        /// <param name="source"></param>

        /// <returns></returns>

        public static bool IsMobile(string source)

        {

            return Regex.IsMatch(source, @"^1[358]\d{9}$", RegexOptions.IgnoreCase);

        }

        public static bool HasMobile(string source)

        {

            return Regex.IsMatch(source, @"1[358]\d{9}", RegexOptions.IgnoreCase);

        }

        /// <summary>

        /// 验证身份证是否有效

        /// </summary>

        /// <param name="Id"></param>

        /// <returns></returns>

        public static bool IsIDCard(string Id)

        {

            if (Id.Length == 18)

            {

                bool check = IsIDCard18(Id);

                return check;

            }

            else if (Id.Length == 15)

            {

                bool check = IsIDCard15(Id);

                return check;

            }

            else

            {

                return false;

            }

        }

        public static bool IsIDCard18(string Id)

        {

            long n = 0;

            if (long.TryParse(Id.Remove(17), out n) == false || n < Math.Pow(10, 16) || long.TryParse(Id.Replace('x', '0').Replace('X', '0'), out n) == false)

            {

                return false;//数字验证

            }

            string address = "11x22x35x44x53x12x23x36x45x54x13x31x37x46x61x14x32x41x50x62x15x33x42x51x63x21x34x43x52x64x65x71x81x82x91";

            if (address.IndexOf(Id.Remove(2)) == -1)

            {

                return false;//省份验证

            }

            string birth = Id.Substring(6, 8).Insert(6, "-").Insert(4, "-");

            DateTime time = new DateTime();

            if (DateTime.TryParse(birth, out time) == false)

            {

                return false;//生日验证

            }

            string[] arrVarifyCode = ("1,0,x,9,8,7,6,5,4,3,2").Split(',');

            string[] Wi = ("7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2").Split(',');

            char[] Ai = Id.Remove(17).ToCharArray();

            int sum = 0;

            for (int i = 0; i < 17; i++)

            {

                sum += int.Parse(Wi[i]) * int.Parse(Ai[i].ToString());

            }

            int y = -1;

            Math.DivRem(sum, 11, out y);

            if (arrVarifyCode[y] != Id.Substring(17, 1).ToLower())

            {

                return false;//校验码验证

            }

            return true;//符合GB11643-1999标准

        }

        public static bool IsIDCard15(string Id)

        {

            long n = 0;

            if (long.TryParse(Id, out n) == false || n < Math.Pow(10, 14))

            {

                return false;//数字验证

            }

            string address = "11x22x35x44x53x12x23x36x45x54x13x31x37x46x61x14x32x41x50x62x15x33x42x51x63x21x34x43x52x64x65x71x81x82x91";

            if (address.IndexOf(Id.Remove(2)) == -1)

            {

                return false;//省份验证

            }

            string birth = Id.Substring(6, 6).Insert(4, "-").Insert(2, "-");

            DateTime time = new DateTime();

            if (DateTime.TryParse(birth, out time) == false)

            {

                return false;//生日验证

            }

            return true;//符合15位身份证标准

        }

 /// <summary>

        /// 是不是中国电话,格式010-85849685

        /// </summary>

        /// <param name="source"></param>

        /// <returns></returns>

        public static bool IsTel(string source)

        {

            return Regex.IsMatch(source, @"^(\d{3,4}-)[1-9]\d{6,8}(\-\d{1,4})?$", RegexOptions.IgnoreCase);

        }

/// <summary>

        /// 获得当前页面客户端的IP

        /// </summary>

        /// <returns>当前页面客户端的IP</returns>

        public static string GetIP()

        {

            string result = HttpContext.Current.Request.ServerVariables["REMOTE_ADDR"];

            if (string.IsNullOrEmpty(result))

                result = HttpContext.Current.Request.ServerVariables["HTTP_X_FORWARDED_FOR"];

            if (string.IsNullOrEmpty(result))

                result = HttpContext.Current.Request.UserHostAddress;

            if (string.IsNullOrEmpty(result) || !Utils.IsIP(result))

                return "127.0.0.1";

            return result;

        }
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  正则表达式