zoukankan      html  css  js  c++  java
  • C#姓名验证及百家姓验证,身份证格式校验

     /// <summary>
            /// 姓氏验证
            /// </summary>
            /// <param name="a"></param>
            /// <returns></returns>
            bool IsChineseCharacter(string a) {
    
                String pattern = "^[赵,钱,孙,李,周,吴,郑,王,冯,陈,楮,卫,蒋,沈,韩,杨,朱,秦,尤,许,何,吕,施,张,孔,曹,严,华,金,魏,陶,"
                        + "姜,戚,谢,邹,喻,柏,水,窦,章,云,苏,潘,葛,奚,范,彭,郎,鲁,韦,昌,马,苗,凤,花,方,俞,任,袁,柳,酆,鲍,史,唐,费,廉,岑,薛,雷,贺,倪,汤,滕,殷,罗,"
                        + "毕,郝,邬,安,常,乐,于,时,傅,皮,卞,齐,康,伍,余,元,卜,顾,孟,平,黄,和,穆,萧,尹,姚,邵,湛,汪,祁,毛,禹,狄,米,贝,明,臧,计,伏,成,戴,谈,宋,茅,"
                        + "庞,熊,纪,舒,屈,项,祝,董,梁,杜,阮,蓝,闽,席,季,麻,强,贾,路,娄,危,江,童,颜,郭,梅,盛,林,刁,锺,徐,丘,骆,高,夏,蔡,田,樊,胡,凌,霍,虞,万,支,"
                        + "柯,昝,管,卢,莫,经,房,裘,缪,干,解,应,宗,丁,宣,贲,邓,郁,单,杭,洪,包,诸,左,石,崔,吉,钮,龚,程,嵇,邢,滑,裴,陆,荣,翁,荀,羊,於,惠,甄,麹,家,"
                        + "封,芮,羿,储,靳,汲,邴,糜,松,井,段,富,巫,乌,焦,巴,弓,牧,隗,山,谷,车,侯,宓,蓬,全,郗,班,仰,秋,仲,伊,宫,宁,仇,栾,暴,甘,斜,厉,戎,祖,武,符,"
                        + "刘,景,詹,束,龙,叶,幸,司,韶,郜,黎,蓟,薄,印,宿,白,怀,蒲,邰,从,鄂,索,咸,籍,赖,卓,蔺,屠,蒙,池,乔,阴,郁,胥,能,苍,双,闻,莘,党,翟,谭,贡,劳,"
                        + "逄,姬,申,扶,堵,冉,宰,郦,雍,郤,璩,桑,桂,濮,牛,寿,通,边,扈,燕,冀,郏,浦,尚,农,温,别,庄,晏,柴,瞿,阎,充,慕,连,茹,习,宦,艾,鱼,容,向,古,易,"
                        + "慎,戈,廖,庾,终,暨,居,衡,步,都,耿,满,弘,匡,国,文,寇,广,禄,阙,东,欧,殳,沃,利,蔚,越,夔,隆,师,巩,厍,聂,晁,勾,敖,融,冷,訾,辛,阚,那,简,饶,"
                        + "空,曾,毋,沙,乜,养,鞠,须,丰,巢,关,蒯,相,查,后,荆,红,游,竺,权,逑,盖,益,桓,公,万俟,司马,上官,欧阳,夏侯,诸葛,闻人,东方,赫连,皇甫,尉迟,"
                        + "公羊,澹台,公冶,宗政,濮阳,淳于,单于,太叔,申屠,公孙,仲孙,轩辕,令狐,锺离,宇文,长孙,慕容,鲜于,闾丘,司徒,司空,丌官,司寇,仉,督,子车,"
                        + "颛孙,端木,巫马,公西,漆雕,乐正,壤驷,公良,拓拔,夹谷,宰父,谷梁,晋,楚,阎,法,汝,鄢,涂,钦,段干,百里,东郭,南门,呼延,归,海,羊舌,微生,岳,"
                        + "帅,缑,亢,况,后,有,琴,梁丘,左丘,东门,西门,商,牟,佘,佴,伯,赏,南宫,墨,哈,谯,笪,年,爱,阳,佟,第五,言,福][\\u4e00-\\u9fa5]{1,4}$";
                Regex regex = new Regex(pattern);
                bool matches = regex.IsMatch(a);
                return matches;
    
            }
    
            public bool IsMatch(string inputStr, string patternStr, bool ifIgnoreCase, bool ifValidateWhiteSpace) {
                if (!ifValidateWhiteSpace && string.IsNullOrWhiteSpace(inputStr))//.NET 4.0 新增IsNullOrWhiteSpace 方法,便于对用户做处理
                    return false;//如果不要求验证空白字符串而此时传入的待验证字符串为空白字符串,则不匹配  
                Regex regex = null;
                if (ifIgnoreCase)
                    regex = new Regex(patternStr, RegexOptions.IgnoreCase);//指定不区分大小写的匹配  
                else
                    regex = new Regex(patternStr);
                return regex.IsMatch(inputStr);
            }
       /// <summary>
            /// 身份证验证
            /// </summary>
            /// <param name="idNumber"></param>
            /// <returns></returns>
            private bool CheckIDCard18(string idNumber) {
                try {
                    long n = 0;
                    if (long.TryParse(idNumber.Remove(17), out n) == false
                        || n < Math.Pow(10, 16) || long.TryParse(idNumber.Replace('x', '0').Replace('X', '0'), out n) == false) {
                        return false;//数字验证  
                    }
                    string address = "11x22x35x44x53x12x23x36x45x54x13x31x37x46x61x14x32x41x50x62x15x33x42x51x63x21x34x43x52x64x65x71x81x82x91";
                    if (address.IndexOf(idNumber.Remove(2)) == -1) {
                        return false;//省份验证  
                    }
                    string birth = idNumber.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 = idNumber.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] != idNumber.Substring(17, 1).ToLower()) {
                        return false;//校验码验证  
                    }
                    return true;//符合GB11643-1999标准  
                } catch (Exception error) {
                  
                    return false;
                }
            }

       /// <summary>        /// 身份证验证        /// </summary>        /// <param name="idNumber"></param>        /// <returns></returns>        private bool CheckIDCard18(string idNumber) {            try {                long n = 0;                if (long.TryParse(idNumber.Remove(17), out n) == false                    || n < Math.Pow(10, 16) || long.TryParse(idNumber.Replace('x', '0').Replace('X', '0'), out n) == false) {                    return false;//数字验证                  }                string address = "11x22x35x44x53x12x23x36x45x54x13x31x37x46x61x14x32x41x50x62x15x33x42x51x63x21x34x43x52x64x65x71x81x82x91";                if (address.IndexOf(idNumber.Remove(2)) == -1) {                    return false;//省份验证                  }                string birth = idNumber.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 = idNumber.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] != idNumber.Substring(17, 1).ToLower()) {                    return false;//校验码验证                  }                return true;//符合GB11643-1999标准              } catch (Exception error) {                              return false;            }        }

  • 相关阅读:
    No configuration found for this host:al
    相对路径和绝对路径
    工具类学习
    JRebel没有自动部署的解决方法
    之前写了http解析高德地图时,json转对象搞了半天 , 今天同事用GSON把json转对象,一句代码就解决了,代码如下
    导入项目时遇到的问题
    解析Http请求调用高德地图的api(货车路径规划)
    二进制中的符号位的区分以及表示
    svn提交及更新时的常见问题
    JDBC 连接池下重构操作
  • 原文地址:https://www.cnblogs.com/itclw/p/15619902.html
Copyright © 2011-2022 走看看