验证中国身份证号的方法(符合GB11643-1999标准)(来源不明)

验证18位身份证号的方法(符合GB11643-1999标准)

        /// <summary>
        /// 18位身份证号码验证
        /// </summary>
        private static bool CheckIDCard18(string idNumber)
        {
            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标准
        }
时间: 2025-01-02 17:52:48

验证中国身份证号的方法(符合GB11643-1999标准)(来源不明)的相关文章

Code-Validator:验证身份证号

ylbtech-Code-Validator:验证身份证号 1.返回顶部 1. using System; namespace Sp.Common { public class ValidatorHelper { /// <summary> /// 身份证上数字对应的地址 /// </summary> //enum IDAddress //{ // 北京 = 11, 天津 = 12, 河北 = 13, 山西 = 14, 内蒙古 = 15, 辽宁 = 21, 吉林 = 22, 黑龙江

身份证号验证

/** * 验证输入身份证号 * * @param 待验证的字符串 * @return 如果是符合格式的字符串,返回 <b>true </b>,否则为 <b>false </b> */ public static boolean IsIDcard(String str) { String regex = "(^\\d{18}$)|(^\\d{15}$)"; return match(regex, str); }

.net验证身份证号是否符合规则

验证身份证号是否符合规则,比较实用,错判率我自己测试为0,挺好用的,欢迎大神补充. protected bool checkidcard(string idcard) { //验证18位或者17位加大小写x Regex rg = new Regex(@"^\d{17}(\d|X|x)$"); Match mc = rg.Match(idcard); string r = ""; if (!mc.Success) return false; //验证前两位是否符合地区

javascript实现验证身份证号的有效性并提示

function nunber(allowancePersonValue){ if(allowancePersonValue=="身份证号"){ $("#span_username").show(); $("#span_username").html("身份证号不能为空"); return false; } //校验长度,类型 else if(isCardNo(allowancePersonValue) === false)

身份证号验证 银行卡号验证

身份证号验证 /* 审批系统的身份证验证 * 身份证15位编码规则:dddddd yymmdd xx p * dddddd:6位地区编码 * yymmdd: 出生年(两位年)月日,如:910215 * xx: 顺序编码,系统产生,无法确定 * p: 性别,奇数为男,偶数为女 * * 身份证18位编码规则:dddddd yyyymmdd xxx y * dddddd:6位地区编码 * yyyymmdd: 出生年(四位年)月日,如:19910215 * xxx:顺序编码,系统产生,无法确定,奇数为男

C#实现中国身份证验证问题

C#中国身份证验证,包括省份验证和校验码验证,符合GB11643-1999标准... 今天写的 C#中国身份证验证,包括省份验证和校验码验证,符合GB11643-1999标准... 理论部分: 15位身份证号码=6位地区代码+6位生日+3位编号 18位身份证号码=6位地区代码+8位生日+3位编号+1位检验码 各省市地区国家代码前两位代码是: 北京 11 吉林 22 福建 35 广东 44 云南 53 天津 12 黑龙江 23 江西 36 广西 45 西藏 54 河北 13 上海 31 山东 37

js验证真实姓名与身份证号

最近的项目中用的需要调用实名认证的接口,实名认证接口价格相比短信而言高了不是几分钱,所以说调用实名认证的条件就要严格把关,因此用到js验证真实姓名与js验证身份证号. 进入正题 js验证真实姓名,是用的unicode字符的来进行匹配,而中国人的姓名长度一般都是2-4,所以重复匹配{2,4}次 1.js验证真实姓名 1 var regName =/^[\u4e00-\u9fa5]{2,4}$/; 2 if(!regName.test(name)){ 3 alert('真实姓名填写有误'); 4 r

验证电子邮件?手机号码?密码6-15位?验证输入网址?身份证号?邮编? 文件改名? 替换字符串部分单词?

/** *验证电子邮件?手机号码?密码6-15位?验证输入网址?身份证号?邮编? *邮箱正则: *"[\\w]@[\\w](.\\w+)+"; */ public class StringDemo8 { public static void main(String[] args) { String email = "[email protected]"; String emailRegex = "[\\w][email protected][a-zA-z0

[前端] jquery验证手机号、身份证号、中文名称

验证: 中文姓名.手机号.身份证和地址 HTML(表单): <form action=""> <div class="form-group"> <label>姓名:</label> <input id="name" type="text"> </div> <div class="form-group"> <label&