← 返回博客列表

身份证号码验证

Vic.Wang2015/09/17993 阅读0 喜欢最近更新 2026/07/06 16:28:12

本文写于 2015 年,距今已有 11 年,文中提及的技术方案与接口可能已经过时,请注意甄别参考。

在平时工作中,经常遇到需要验证身份证号的时候,我们通过正则仅仅能判断身份证号码的格式对不对,但这个号码是不是正确的,就不知道了,需要去交钱连公安部去查了,像我们这些连的资格都没有。

但也不是没有办法,只要我们知道了身份证生成和校验的规则,我们还写不出来啊。

代码如下:

function checkIdNumber(card) {
    var str, result = 0;
    card = card.toUpperCase();
    
    if (card.length === 18) {
        var map1 = [7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2],
            map2 = ['1', '0', 'X', '9', '8', '7', '6', '5', '4', '3', '2'];

        str = new String(card);
        for (var i = 0, len = str.length; i < (len - 1); i++) {
            result += str[i] * map1[i];
        }

        if (map2[(result % 11)] != str[len - 1]) {
            return alert('请填写正确的身份证号码!');
        }
    }
}         

调用的时候传入身份证号就行了,上面那规则只针对 18 位身份证有效哦,15 位的身份证不行的。

上面的代码是 East.Wu 同学在 lms2.0 里面写的,摘出来供大加参考。

当然,上面的只能保证身份证号码是合法的,至于是否和某个人对应,那也是做不到的哦,这个也只能针对90%的普通大众吧,对于懂规则的还是可以轻易绕过的。

想了解更多,看这里 身份证正则 写法。

若有共鸣,不妨点个喜欢

本文地址:https://www.mingsixue.com/blog/detail/JS-idcard-verification

分享:微博QQ空间X