zoukankan      html  css  js  c++  java
  • C#校验身份证号

    /// <summary>
    /// 验证身份证合理性
    /// </summary>
    /// <param name="Id"></param>
    /// <returns></returns>
    public bool CheckIDCard(string idNumber)
    {
    if (idNumber.Length == 18)
    {
    bool check = CheckIDCard18(idNumber);
    return check;
    }
    else if (idNumber.Length == 15)
    {
    bool check = CheckIDCard15(idNumber);
    return check;
    }
    else
    {
    return false;
    }
    }
    /// <summary>
    /// 18位身份证号码验证
    /// </summary>
    private 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标准
    }


    /// <summary>
    /// 16位身份证号码验证
    /// </summary>
    private bool CheckIDCard15(string idNumber)
    {
    long n = 0;
    if (long.TryParse(idNumber, out n) == false || n < Math.Pow(10, 14))
    {
    return false;//数字验证
    }
    string address = "11x22x35x44x53x12x23x36x45x54x13x31x37x46x61x14x32x41x50x62x15x33x42x51x63x21x34x43x52x64x65x71x81x82x91";
    if (address.IndexOf(idNumber.Remove(2)) == -1)
    {
    return false;//省份验证
    }
    string birth = idNumber.Substring(6, 6).Insert(4, "-").Insert(2, "-");
    DateTime time = new DateTime();
    if (DateTime.TryParse(birth, out time) == false)
    {
    return false;//生日验证
    }
    return true;
    }

  • 相关阅读:
    一行代码更改博客园皮肤
    fatal: refusing to merge unrelated histories
    使用 netcat 传输大文件
    linux 命令后台运行
    .net core 使用 Nlog 配置文件
    .net core 使用 Nlog 集成 exceptionless 配置文件
    Mysql不同字符串格式的连表查询
    Mongodb between 时间范围
    VS Code 使用 Debugger for Chrome 调试vue
    css权重说明
  • 原文地址:https://www.cnblogs.com/AbelAngelo/p/14010035.html
Copyright © 2011-2022 走看看