身份证号码验证
Author: Vic.Wang 2015/09/17
在平时工作中,经常遇到需要验证身份证号的时候,我们通过正则仅仅能判断身份证号码的格式对不对,但这个号码是不是正确的,就不知道了,需要去交钱连公安部去查了,像我们这些连的资格都没有。
但也不是没有办法,只要我们知道了身份证生成和校验的规则,我们还写不出来啊。
效果如下:
不信的话输入自己的身份证号码试一下。
代码如下:
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%的普通大众吧,对于懂规则的还是可以轻易绕过的。
想了解更多,看这里 身份证正则 写法。
本文地址:http://blog.mingsixue.com/effect/JS-idcard-verification.html
文章若需转载,请附上原文链接,谢谢配合。^_^