模拟身份证号码JS源代码
<script language="javascript">
>>>>>>点击查看 身份证生成源代码
>>>>>>点击查看 身份证验证源代码
>>>>>>点击查看 身份证验证原理
function test(){
var arrVerifyCode = [1,0,"x",9,8,7,6,5,4,3,2];
var Wi = [7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2];
var cid = document.getElementById("cid").value;
var sex = document.getElementById("sex").value;
var area = document.getElementById("area").value;
if(dateV(cid)){
Ai=area+cid+"00"+sex;
for(var i=0,ret=0;i<17;i++) ret+=Ai.charAt(i)*Wi[i];
Ai+=arrVerifyCode[ret %=11];
document.getElementById("Ai").value= Ai;
alert("操作成功 生成的身份证号码为:"+Ai);
}
}
function dateV(id){
var yyyy =id.substring(0,4),mm=id.substring(4,6);dd=id.substring(6,8);
var d=new Date(yyyy,mm,dd),year=d.getFullYear(),mon=d.getMonth(),day=d.getDate(),now=new Date();
if ( id.length!=8 ||year!=yyyy || mon!=mm || day!=dd || d>now || now.getFullYear()-year>110 || !isValidDate(dd, mm, yyyy) ) {
alert("日期填写错误!必须按照标准格式填写日期:yyyymmdd 并且时间向前不得超出110年 向后不得晚于当前");
return flase;
}
else return true;
//http://www.0dwx.com/Html/Book/16/225/52320.htm
}
//日期 初步验证
function isValidDate(day, month, year) {
if (month == 2) {
var leap = (year % 4 == 0 &&
(year % 100 != 0 || year % 400 == 0));
if (day>29 || (day == 29 && !leap)) {
return false;
}
}
return true;
}
</script>
<form>
<table><tr><td>
输入生日:
<input type="text" id="cid"></td></tr><tr><td>
<input type="radio" name="sex" value="1" id="sex">boy</input>
<input type="radio" name="sex" value="2" id="sex">girl</input>
</td></tr><tr><td>
<select id="area">
<option value="110101">北京市东城区</option>
<option value="110102">北京市西城区</option>
<option value="110103">北京市崇文区</option>
<option value="110104">北京市宣武区</option>
<option value="110105">北京市朝阳区</option>
<option value="110106">北京市丰台区</option>
<option value="110107">北京市石景山区</option>
<option value="110108">北京市海淀区</option>
<option value="110109">北京市门头沟区</option>
<option value="130101">河北省石家庄市市辖区</option>
<option value="130102">河北省石家庄市长安区</option>
<option value="130103">河北省石家庄市桥东区</option>
<option value="140101">山西省太原市市辖区</option>
<option value="140302">山西省阳泉市城区</option>
<option value="150101">内蒙古呼和浩特市市辖区</option>
<option value="150428">内蒙古喀喇沁旗</option>
<option value="210101">辽宁省沈阳市市辖区</option>
<option value="210204">辽宁省大连市沙河口区</option>
<option value="220101">吉林省长春市市辖区</option>
<option value="220105">吉林省长春市二道河子区</option>
<option value="230102">黑龙江哈尔滨市道里区</option>
<option value="310109">上海市虹口区</option>
<option value="320102">江苏省南京市玄武区</option>
<option value="330783">浙江省东阳市</option>
<option value="340102">安徽省合肥市东市区</option>
<option value="350104">福建省福州市仓山区</option>
<option value="360103">江西省南昌市西湖区</option>
<option value="370103">山东省济南市市中区</option>
<option value="370203">山东省青岛市市北区</option>
<option value="410102">河南省郑州市中原区</option>
<option value="420105">湖北省武汉市汉阳区</option>
<option value="430102">湖南省长沙市东区</option>
<option value="440104">广东省广州市越秀区</option>
<option value="450104">广西南宁市城北区</option>
<option value="460028">海南省临高县</option>
<option value="510106">四川省成都市金牛区</option>
<option value="520112">贵州省贵阳市乌当区</option>
<option value="530103">云南省昆明市盘龙区</option>
<option value="540102">西藏拉萨市城关区</option>
<option value="610102">陕西省西安市新城区</option>
<option value="620103">甘肃省兰州市七里河区</option>
<option value="630105">青海省西宁市城北区</option>
<option value="650102">新疆乌鲁木齐市天山区</option>
<option value="710000">台湾省</option>
<option value="720000">香港特别行政区</option>
</select></td></tr><tr><td>
<input type="button" onclick="test()" value="提交生成身份证号码"></td></tr><tr><td>
生成身份证号码 :</td><td>
<input type="text" id="Ai" ></td></tr></table> </form>
<center>