身份证号码验证
本文写于 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
文章若需转载,请附上原文链接,谢谢配合。^_^