发一个身份证验证的javascript在此
来源:互联网 发布:淘宝预售全款规则 编辑:程序博客网 时间:2024/05/02 01:00
//idcard身份证号文本框,birthdayId出生日期文本框,genderId(性别Radiobutton的ID)
//对输入的身份证号进行验证,并根据身份证号自动生成出生日期和性别
function CheckIDCard(idcard,birthdayId,genderId)
{
var aCity = {11:"北京",12:"天津",13:"河北",14:"山西",15:"内蒙古",21:"辽宁",22:"吉林",23:"黑龙江",
31:"上海",32:"江苏",33:"浙江",34:"安徽",35:"福建",36:"江西",37:"山东",41:"河南",42:"湖北",43:"湖南",
44:"广东",45:"广西",46:"海南",50:"重庆",51:"四川",52:"贵州",53:"云南",54:"西藏",61:"陕西",62:"甘肃",
63:"青海",64:"宁夏",65:"新疆",71:"台湾",81:"香港",82:"澳门",91:"国外"};
var flag = false;
var val1 = idcard.value;
var len = val1.length;
var birthday="";
if(len == 0)
{
return;
}
if(len == 15)
{
if(!/^/d{15}$/i.test(val1))
{
flag = false;
}
else if(aCity[parseInt(val1.substr(0,2))] == null)
{
flag = false;
}
else
{
val1 = ChangeIDCard(val1);
birthday = val1.substr(6,4)+"-"+Number(val1.substr(10,2))+"-"+Number(val1.substr(12,2));
var d = new Date(birthday.replace(/-/g,"/"));
if(birthday != (d.getFullYear() + "-" + (d.getMonth() + 1) + "-" +d.getDate()))
{
flag = false;
}
else
{
flag = VerifyIDCard(val1);
}
}
}
else if(len == 18)
{
if(!/^/d{17}(/d|x)$/i.test(val1))
{
flag = false;
}
else if(aCity[parseInt(val1.substr(0,2))] == null)
{
flag = false;
}
else
{
birthday = val1.substr(6,4)+"-"+Number(val1.substr(10,2))+"-"+Number(val1.substr(12,2));
var d = new Date(birthday.replace(/-/g,"/"));
if(birthday != (d.getFullYear() + "-" + (d.getMonth() + 1) + "-" +d.getDate()))
{
flag = false;
}
else
{
flag = VerifyIDCard(val1);
}
}
}
else
{
flag = false;
}
if(flag)
{
if(len == 18)
{
if(val1.substr(17,1) == 'x')
{
idcard.value = val1.substr(0,17) + 'X';
}
}
var gender = parseInt(val1.substr(16,1)%2);
if(gender == 0) gender = 2;
if(gender == 1) gender = 1;
birthdayId.value = birthday;
for(var i=0;i<2;i++)
{
var tGender = document.getElementById(genderId.id + "_" + i);
if(tGender.value == gender)
{
tGender.checked = true;
}
}
}
else
{
alert("身份证号输入有误!");
idcard.value = "";
}
}
//将15位身份证号转换为18位
function ChangeIDCard(id15)
{
var arrInt = new Array(7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2);
var arrVerify = new Array('1','0','X','9','8','7','6','5','4','3','2');
var nTemp = 0;
var tempID = id15.substr(0,6) + '19' + id15.substr(6,9);
var len2 = tempID.length;
for(var i=0;i<len2;i++)
{
nTemp += parseInt(tempID.substr(i,1)) * arrInt[i];
}
tempID += arrVerify[nTemp % 11];
return tempID;
}
//对18位的身份证号进行校验
function VerifyIDCard(id18)
{
var flag = false;
var iSum = 0;
id18 = id18.replace(/x$/i,"a");
for(var i=17;i>=0;i--)
{
iSum += (Math.pow(2,i) % 11) * parseInt(id18.charAt(17-i),11);
}
if(iSum%11!=1)
{
flag = false;
}
else
{
flag = true;
}
return flag;
}
- 发一个身份证验证的javascript在此
- 身份证带**的验证 JavaScript
- JavaScript身份证和出生日期的验证
- 身份证的验证 javascript(完全版)
- JAVASCRIPT身份证验证函数
- ASP&Javascript 身份证验证
- javascript实现身份证验证
- JavaScript验证身份证
- javascript身份证验证
- JavaScript(JS)验证身份证
- JavaScript(JS)验证身份证
- 身份证验证Javascript代码
- javaScript身份证严格验证
- javascript验证身份证
- javascript 验证身份证
- 自己写的一个身份证验证函数
- 一个身份证验证的php函数
- 用javascript进行身份证验证
- insertAdjacentElement 插入指定对象到文档结构
- 跟踪报道:中国国际数字城市建设技术与设备博览会(简报)
- 通过层实现页面部分内容展开与收缩
- JavaScript小技巧
- php 中文字符串截取函数-->比较好的
- 发一个身份证验证的javascript在此
- WAS5 导出应用的问题 *.ear文件为空
- PHP中时间和日期函数总结
- 紫皮书(Purple Book) - 计算机程序的构造和解释
- moto v系列 手机移植心得
- Struts中不同的Action和ActionForm组合
- C#面向对象设计模式纵横谈(4):Builder 生成器(创建型模式)
- 用PHP制作饼图调查表
- nokia s40 手机 循环播放声音