一桶粘贴博客

电脑杂谈  发布时间:2020-04-21 06:07:20  来源:网络整理

js校验18位号_支付宝客服校验身份_校验码不对

中华人民共和国国家标准GB 11643-1999“公民编号”规定: 公民编号是功能的组合校验码不对,由17位数字的身体代码和验证码组成.

公民身份号码是功能的组合,由十七位数字的身体密码和一位数字的验证码组成. 从左到右的排列顺序是: 六位地址码,八位出生日期码,三位顺序码和一位校验码.

支付宝客服校验身份_js校验18位号_校验码不对

地址代码表示编码对象永久居住地所在县(市,旗,区)的行政区划代码,并应按照GB / T 2260的规定执行.

出生日期表示编码对象的年份,月份和日期,并应按照GB / T 7408的规定执行. 年份,月份和日期代码之间没有分隔符. (例如: 某人的生日是1966年10月26日,他的生日代码是19661026. )

js校验18位号_支付宝客服校验身份_校验码不对

顺序码是指在同一地址码标识的区域内,将顺序号分配给同一年,同一月和同一天出生的人. 序列号的奇数分配给男性,偶数分配给女性.

证明代码是根据前十七位数字代码根据公式计算出的验证码.

支付宝客服校验身份_js校验18位号_校验码不对

将前一个ID号的17位数字乘以不同的系数. 第一位到第十七位的系数是: 7 9 10 5 8 8 2 2 1 6 3 7 9 10 5 8 4 2;

将17位数字与系数相乘的结果相加;

加11除以查看余数;

其余的只能包含11位数字0 1 2 3 4 5 6 7 8 9 10校验码不对,并且与它们相对应的最后一个ID卡的编号为1 0 X 9 8 7 6 5 4 3 2;

我从上面了解到,如果余数为2,则罗马X将出现在ID的第18位. 如果余数为10,则的最后一个数字为2.

function check(code) {
    code = code.split('');
    var factor = [7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2],
        parity = [1, 0, 'X', 9, 8, 7, 6, 5, 4, 3, 2],
        sum = 0,
        ai = 0,
        wi = 0;
    for (var i = 0; i < 17; i++) {
        ai = code[i];
        wi = factor[i];
        sum += ai * wi;
    }
    var last = parity[sum % 11];
    return last == code[17];
}

此方法只能执行简单的前端验证. 我们在java背景中的判断方式是根据省,市和县的年,月和年来计算ID卡的后四位. 很多,但他们对自己的方法不太清楚


本文来自电脑杂谈,转载请注明本文网址:
https://www.pc-fly.com/a/jisuanjixue/article-183252-1.html

    相关阅读
      发表评论  请自觉遵守互联网相关的政策法规,严禁发布、暴力、反动的言论

      • 卡巴吉
        卡巴吉

        呵呵土豪来炫富了

      • 姬显
        姬显

        只能说有些部分不好

      • 晋出公
        晋出公

        我们的盟友大英帝国该出手了

      热点图片
      拼命载入中...