[javascript技术]JavaScript身份证号码校验

操作方法

  • 01

    <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>身份证号码验证</title> <script type="text/javascript"> //校验身份证号码 var yyyy; var mm; var dd; var birthday; var address; var sex; function CheckValue(idCard){ //是否输入 var id=idCard; var id_length=id.length; if (id_length==0){ alert("请输入身份证号码!"); return false; } //长度校验 if (id_length!=15 && id_length!=18){ alert("身份证号长度应为15位或18位!"); return false; } //判断是否纯数字 if(isNaN(idCard)) { alert("含有非法字符!"); return false; } //地区校验 // var area={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:"国外"} if(area[parseInt(idCard.toString().substr(0,2))]==null) { alert('身份证地区非法!') return false; } else address = area[parseInt(idCard.toString().substr(0,2))]; //日期校验 if (id_length==15){ yyyy="19"+id.toString().substring(6,8); mm=id.toString().substring(8,10); dd=id.toString().substring(10,12); if (mm>12 || mm<=0){ alert("输入身份证号,月份非法!"); return false; } if (dd>31 || dd<=0){ alert("输入身份证号,日期非法!"); return false; } birthday=yyyy+ "-" +mm+ "-" +dd; if ("13579".indexOf(id.toString().substring(14,15))!=-1){ sex="女"; }else{ sex="男"; } }else if (id_length==18){ yyyy=id.toString().substring(6,10); if (yyyy>2200 || yyyy<1900){ alert("输入身份证号,年度非法!"); return false; } mm=id.toString().substring(10,12); if (mm>12 || mm<=0){ alert("输入身份证号,月份非法!"); return false; } dd=id.toString().substring(12,14); if (dd>31 || dd<=0){ alert("输入身份证号,日期非法!"); return false; } //校验位校验 if (!isChinaIDCard(idCard)) { return false ; } birthday=yyyy+ "-" +mm+ "-" +dd; if ("13579".indexOf(id.toString().substring(14,15))!=-1){ sex="女"; }else{ sex="男"; } } return true; } //18位校验码校验 function isChinaIDCard(StrNo) { StrNo = StrNo.toString(); var a, b, c; a = parseInt(StrNo.substr(0, 1)) * 7+parseInt(StrNo.substr(1, 1)) * 9 +parseInt(StrNo.substr(2, 1)) * 10; a = a + parseInt(StrNo.substr(3, 1)) * 5+parseInt(StrNo.substr(4, 1)) * 8+parseInt(StrNo.substr(5, 1)) * 4; a = a + parseInt(StrNo.substr(6, 1)) * 2+parseInt(StrNo.substr(7, 1)) * 1+parseInt(StrNo.substr(8, 1)) * 6; a = a + parseInt(StrNo.substr(9, 1)) * 3+parseInt(StrNo.substr(10, 1)) * 7+parseInt(StrNo.substr(11, 1)) * 9; a = a + parseInt(StrNo.substr(12, 1)) * 10+parseInt(StrNo.substr(13, 1)) * 5+parseInt(StrNo.substr(14, 1)) * 8; a = a + parseInt(StrNo.substr(15, 1)) * 4+parseInt(StrNo.substr(16, 1)) * 2; b = a % 11; if (b == 2) //最后一位为校验位 { c = StrNo.substr(17, 1).toUpperCase(); //转为大写X } else { c = parseInt(StrNo.substr(17, 1)); } switch (b) { case 0: if (c != 1) { alert("身份证号码校验位错:最后一位应该为:1"); return false; } break; case 1: if (c != 0) { alert("身份证号码校验位错:最后一位应该为:0"); return false; } break; case 2: if (c != "X") { alert("身份证号码校验位错:最后一位应该为:X"); return false; } break; case 3: if (c != 9) { alert("身份证号码校验位错:最后一位应该为:9"); return false; } break; case 4: if (c != 8) { alert("身份证号码校验位错:最后一位应该为:8"); return false; } break; case 5: if (c != 7) { alert("身份证号码校验位错:最后一位应该为:7"); return false; } break; case 6: if (c != 6) { alert("身份证号码校验位错:最后一位应该为:6"); return false; } break; case 7: if (c != 5) { alert("身份证号码校验位错:最后一位应该为:5"); return false; } break; case 8: if (c != 4) { alert("身份证号码校验位错:最后一位应该为:4"); return false; } break; case 9: if (c != 3) { alert("身份证号码校验位错:最后一位应该为:3"); return false; } break; case 10: if (c != 2) { alert("身份证号码校验位错:最后一位应该为:2"); return false } } return true ; } //响应单击事件 function myclick() { var strinput=document.getElementById("idCard").value ; if(CheckValue(strinput)) { alert('输入正确!请核对您的信息:出生日期:'+birthday+'.性别:'+sex+'.出生地:'+address); } } </script> </head> <body> 输入身份证号码: <input name="idCard" type="text" maxlength="25" id="idCard"/> <input name="myButton" type="button" id="myButton" onclick="myclick()" value="确定" /> </body> </html>

(0)

相关推荐

  • Excel罕见高招:[5]验证身份证号码校验码真伪

    我们知道第二代身份证号码最后一位,是校验码.本系列最后一篇文章,分享给大家校验码的生成公式,以及如何通过Excel,自动判断校验码的真伪,从而间接判断身份证号码的真假. 分步得到身份证号码的校验码 0 ...

  • [javascript技术]JavaScript常用页面跳转

    操作方法 01 javascript页面跳转常用代码按钮式: <INPUT name="pclog" type="button" value=" ...

  • WPS表格中校验身份证号码中的日期

    在录入身份证号码的时候,一不小心就可能出错。下面我们就讲讲如何利用ET的格式转换功能,校验身份证号码中的出生日期部分。 如图1所示,A列为身份证号码(输入前请先将该列单元格格式统一设置成“文本”),B ...

  • 用WPS格式转换工具校验身份证号码

    在录入身份证号码的时候,一不小心就可能出错。下面我们就讲讲如何利用ET的格式转换功能,校验身份证号码中的出生日期部分。 图1 如图1所示,A列为身份证号码(输入前请先将该列单元格格式统一设置成“文本” ...

  • 通过wps转换工具进行校验身份证号码

    如图1所示,A列为身份证号码(输入前请先将该列单元格格式统一设置成"文本"),B列为用公式从身份证号中提取出的出生日期,以B2为例,公式为: =TEXT(IF(LEN(A2)=15 ...

  • excel怎样批量校验身份证号码是否正确合法有效

    每个人的身份证号码都都是一串有特别意义的数字,如代表出生地,出生日,性别等,那么对于行政上的一些工作,核对身份证是不是输入有误,身份证是否造假,也是可以通过身份证上的号码数字进行核对检查,来看看exc ...

  • 身份证号码编码规则及校验位校验算法

    身份证是我们每个人的身份凭证,在我国是指明居住在中华人民共和国境内具有中国国籍的公民的身份证,身份证广泛应用于我们每个人的生活,是很重要的证件.身份证号码中蕴含着很多我们很多的个人信息. 操作方法 0 ...

  • 身份证号码验证算法参考

    操作方法 01 居民身份证的号码是按照国家的标准编制的,由18位组成:前六位为行政区划代码,第七至第十四位为出生日期码,第15至17位为顺序码,第18位为校验码.作为尾号的校验码,是由号码编制单位按统 ...

  • 怎样从身份证号码里提取出生年月日、性别、年龄

    在人事管理中经常会遇到需要统计一些人的年龄等问题,但原始资料只有身份证号码,其实这足够了.在EXCEL中,引用其内置函数利用身份证号码可以提出某人的出生年月.性别.年龄. 操作方法 01 首先需要知道 ...