模拟身份证号码JS源代码









输入生日:
boy girl
生成身份证号码 :






<center><br><br><br><br><br><br><br><br>
<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>






posted @ 2008-01-31 16:11  简单飞扬-  阅读(8304)  评论(2编辑  收藏  举报