js判断身份证最后一位是否合法的方法的总结

简介:

这个方法其实也是在网上找到的,身份证号码验证其实就是验证其最后一位是否合法,

下面是我在网上找到的方法

function isTrueValidateCodeBy18IdCard(idCard) {
var Wi = [ 7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2, 1 ];// 加权因子 
var ValideCode = [ 1, 0, 10, 9, 8, 7, 6, 5, 4, 3, 2 ];// 身份证验证位值.10代表X 
var sum = 0; // 声明加权求和变量 
for ( var i = 0; i < 17; i++) {
var tempnum = idCard.substring(i,i+1);
alert(tempnum);
if (tempnum..toLowerCase() == 'x') {
tempnum = 10;// 将最后位为x的验证码替换为10方便后续操作 
}
sum += Wi[i] * tempnum;// 加权求和 

valCodePosition = sum % 11;// 得到验证码所位置 
var a_idCard_num=idCard[17];
if (a_idCard_num..toLowerCase() == 'x') { 
a_idCard_num = 10;
}
if (a_idCard_num == ValideCode[valCodePosition]) { 
return true; 
} else {
return false; 

}

这个方法存在的问题是当最后一位是数字的时候执行toLowerCase这个方法的时候在有的IE8下会提示不是对象或者未定义,造成错误,所以我经过了以下的修改

/** 
* 判断身份证号码为18位时最后的验证位是否正确 
* @param a_idCard 身份证号码数组 
* @return 
*/ 
function isTrueValidateCodeBy18IdCard(idCard) { 
var Wi = [ 7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2, 1 ];// 加权因子 
var ValideCode = [ 1, 0, 10, 9, 8, 7, 6, 5, 4, 3, 2 ];// 身份证验证位值.10代表X 
var sum = 0; // 声明加权求和变量 
for ( var i = 0; i < 17; i++) {
var tempnum = idCard.substring(i,i+1);
if (tempnum == 'x'||tempnum == 'X') { 
tempnum = 10;// 将最后位为x的验证码替换为10方便后续操作 
}
sum += Wi[i] * tempnum;// 加权求和 

valCodePosition = sum % 11;// 得到验证码所位置 
var a_idCard_num=idCard[17];
if (a_idCard_num == 'x'||a_idCard_num == 'X'){
a_idCard_num = 10;
}
if (a_idCard_num == ValideCode[valCodePosition]){ 
return true; 
} else {
return false; 

}

这样就解决了


本文转自 cd1989929 51CTO博客,原文链接:http://blog.51cto.com/chend/1324503


相关文章
|
5天前
|
存储 JavaScript 索引
JS中数组的相关方法介绍
JS中数组的相关方法介绍
|
7天前
|
JavaScript 前端开发 容器
AJAX载入外部JS文件到页面并让其执行的方法(附源码)
AJAX载入外部JS文件到页面并让其执行的方法(附源码)
11 0
|
8天前
|
JSON JavaScript 前端开发
JavaScript原生代码处理JSON的一些高频次方法合集
JavaScript原生代码处理JSON的一些高频次方法合集
|
1月前
|
JavaScript 前端开发
解释 JavaScript 中的`map()`、`filter()`和`reduce()`方法的用途。
解释 JavaScript 中的`map()`、`filter()`和`reduce()`方法的用途。
17 1
|
1月前
|
JavaScript
JS绑定事件的三种方法(简单易懂)
JS绑定事件的三种方法(简单易懂)
|
1月前
|
JavaScript
JS中改变this指向的六种方法
JS中改变this指向的六种方法
|
5天前
|
JavaScript 前端开发 索引
JavaScript中与字符串相关的方法
JavaScript中与字符串相关的方法
|
1月前
|
JavaScript
JS数组增删方法的原理,使用原型定义
JS数组增删方法的原理,使用原型定义
|
8天前
|
JavaScript
【归总】原生js操作浏览器hash、url参数参数获取/修改方法合集
【归总】原生js操作浏览器hash、url参数参数获取/修改方法合集
|
9天前
|
JavaScript
JS去除字符串的方法
JS去除字符串的方法