Home / Blog / effect

身份证号码验证

Author: Vic.Wang 2015/09/17 Tags:身份证身份证号码身份证验证身份证规则

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

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

效果如下:

身份证号码不正确!

身份证号码正确!

不信的话输入自己的身份证号码试一下。

代码如下:

    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位的身份证不行的。

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

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

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