中国身份证号码验证,支持15 18位,可验证成功90 的身份证号

news/2024/11/30 15:39:22/

分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.csdn.net/jiangjunshow

也欢迎大家转载本篇文章。分享知识,造福人民,实现我们中华民族伟大复兴!

using System;/// <summary>/// Summary description for IDCardValid/// </summary>public class IDCardValid{    public IDCardValid()    {        //        // TODO: Add constructor logic here        //    }    /// <summary>    /// 验证身份证号码    /// </summary>    /// <param name="Id">身份证号码</param>    /// <returns>验证成功为True,否则为False</returns>    public static bool CheckIDCard(string Id)    {        if (Id.Length == 18)        {            bool check = CheckIDCard18(Id);            return check;        }        else if (Id.Length == 15)        {            bool check = CheckIDCard15(Id);            return check;        }        else        {            return false;        }    }    #region 身份证号码验证    /// <summary>    /// 验证15位身份证号    /// </summary>    /// <param name="Id">身份证号</param>    /// <returns>验证成功为True,否则为False</returns>    private static bool CheckIDCard18(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标准    }    /// <summary>    /// 验证18位身份证号    /// </summary>    /// <param name="Id">身份证号</param>    /// <returns>验证成功为True,否则为False</returns>    private static bool CheckIDCard15(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位身份证标准    }    #endregion}
           

给我老师的人工智能教程打call!http://blog.csdn.net/jiangjunshow

这里写图片描述

http://www.ppmy.cn/news/726056.html

相关文章

身份证号码js校验(15位18位)

idcard: {// 验证身份证&#xff08;15位18位&#xff09;validator: function (value) {// 1.传入15位或者18位身份证号码&#xff0c;18位号码末位可以为数字或Xvar idCard value;// 2.身份证中的X&#xff0c;必须是大写的if(value.indexOf("x") ! -1){return fa…

18位身份证标准

18位身份证标准在国家质量技术监督局于1999年7月1日实施的GB11643-1999《公民身份号码》中做了明确的规定。 GB11643-1999《公民身份号码》为GB11643-1989《社会保障号码》的修订版&#xff0c;其中指出将原标准名称"社会保障号码"更名为"公民身份号码"&am…

js通过身份证计算年龄

如果把身份证号码传到页面上&#xff0c;在前端页面获取年龄就需要用到JS脚本了&#xff1a; 示例&#xff1a; let age GetAge(110101199003070337)function GetAge(identityCard) {var len (identityCard "").length;if (len 0) {return 0;} else {if ((len …

验证18位身份证真实性

一、身份证第18位&#xff08;校验码&#xff09;的计算方法 &#xff1a;  1、将前面的身份证号码17位数分别乘以不同的系数。 从第一位到第十七位的系数分别为&#xff1a; 7&#xff0d;9&#xff0d;10&#xff0d;5&#xff0d;8&#xff0d;4&#xff0d;2&#xff0d;1…

身份证算法15位转换为18位

public class IdCardTest {public static void main(String[] args) {//原15位身份证号String idCard15 "410522930308811";StringBuffer sb get18IdCard(idCard15);System.out.println(sb);}private static StringBuffer get18IdCard(String idCard) {//将字符串转…

十八岁的天空

走过花季和雨季,我们踏入了人生的18岁.18岁,风华正茂,是个追逐梦想的好时节.18岁的天空,或许很蓝,或许很忧郁.但这都是真实的18岁,是我们实现梦想的最贴切的感受.18岁是人生不可多得的财富,仰望天空,追逐梦想.珍惜每一天,不断努力,写下圆满的句点.感谢18岁的天空,给我追逐梦想的…

15位或18位长度身份证号码JS验证

免责声明&#xff1a;身份证号为随机组合而成&#xff0c;不会涉及任何隐私泄密问题&#xff0c;也非现实生活中真实的身份证号码&#xff1b;身份证号码所属年龄均为18岁以上&#xff0c;均已通过校验。 var IdNum1 “320583198603316426”; // 测试号码1&#xff08;18位&a…

moment.js根据身份证判断是否成年

moment.js中允许传入一串字符传然后变成时间格式 话不多说&#xff0c;直接上代码,因为实在uniapp中使用的&#xff0c;因此加了this var birthDay this.$moment("19990211").format(YYYY-MM-DD) console.log(birthDay) //输出1999-02-11根据这个格式化&#xff0…