JS身份证号码验证函数 支持带x的号码
2011-05-24 20:27
483 查看
<script type="text/javascript"> alert(isIdCardNo("440781197007220512")); //--身份证号码验证-支持新的带x身份证 function isIdCardNo(num) { var factorArr = new Array(7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2,1); var error; var varArray = new Array(); var intValue; var lngProduct = 0; var intCheckDigit; var intStrLen = num.length; var idNumber = num; // initialize if ((intStrLen != 15) && (intStrLen != 18)) { //error = "输入身份证号码长度不对!"; //alert(error); //frmAddUser.txtIDCard.focus(); return false; } // check and set value for(i=0;i<intStrLen;i++) { varArray[i] = idNumber.charAt(i); if ((varArray[i] < '0' || varArray[i] > '9') && (i != 17)) { //error = "错误的身份证号码!."; //alert(error); //frmAddUser.txtIDCard.focus(); return false; } else if (i < 17) { varArray[i] = varArray[i]*factorArr[i]; } } if (intStrLen == 18) { //check date var date8 = idNumber.substring(6,14); if (checkDate(date8) == false) { //error = "身份证中日期信息不正确!."; //alert(error); return false; } // calculate the sum of the products for(i=0;i<17;i++) { lngProduct = lngProduct + varArray[i]; } // calculate the check digit intCheckDigit = 12 - lngProduct % 11; switch (intCheckDigit) { case 10: intCheckDigit = 'X'; break; case 11: intCheckDigit = 0; break; case 12: intCheckDigit = 1; break; } // check last digit if (varArray[17].toUpperCase() != intCheckDigit) { //error = "身份证效验位错误!...正确为: " + intCheckDigit + "."; //alert(error); return false; } } else{ //length is 15 //check date var date6 = idNumber.substring(6,12); if (checkDate(date6) == false) { //alert("身份证日期信息有误!."); return false; } } //alert ("Correct."); return true; } function checkDate(date) { return true; } </script>
/////////根据身份证判断性别和生日
<%@ Page language="c#" Codebehind="CordBirthday.aspx.cs" AutoEventWireup="false" Inherits="CodeDatum.birthday.CordBirthday" %> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" > <HTML> <HEAD> <title>CordBirthday</title> <meta name="GENERATOR" Content="Microsoft Visual Studio .NET 7.1"> <meta name="CODE_LANGUAGE" Content="C#"> <meta name="vs_defaultClientScript" content="JavaScript"> <meta name="vs_targetSchema" content="http://schemas.microsoft.com/intellisense/ie5"> <script language="javascript"> function showBirthday(val) { var birthdayValue; if(15==val.length) { //15位身份证号码 birthdayValue = val.charAt(6)+val.charAt(7); if(parseInt(birthdayValue)<10) { birthdayValue = '20'+birthdayValue; } else { birthdayValue = '19'+birthdayValue; } birthdayValue=birthdayValue+'-'+val.charAt(8)+val.charAt(9)+'-'+val.charAt(10)+val.charAt(11); if(parseInt(val.charAt(14)/2)*2!=val.charAt(14)) document.all.sex.value='男'; else document.all.sex.value='女'; document.all.birthday.value=birthdayValue; } if(18==val.length) { //18位身份证号码 birthdayValue=val.charAt(6)+val.charAt(7)+val.charAt(8)+val.charAt(9)+'-'+val.charAt(10)+val.charAt(11) +'-'+val.charAt(12)+val.charAt(13); if(parseInt(val.charAt(16)/2)*2!=val.charAt(16)) document.all.sex.value='男'; else document.all.sex.value='女'; if(val.charAt(17)!=IDCard(val)) { document.all.idCard.style.backgroundColor='#ffc8c8'; } else { document.all.idCard.style.backgroundColor='white'; } document.all.birthday.value=birthdayValue; } } // 18位身份证号最后一位校验 function IDCard(Num) { if (Num.length!=18) return false; var x=0; var y=''; for(i=18;i>=2;i--) x = x + (square(2,(i-1))%11)*parseInt(Num.charAt(19-i-1)); x%=11; y=12-x; if (x==0) y='1'; if (x==1) y='0'; if (x==2) y='X'; return y; } // 求得x的y次方 function square(x,y) { var i=1; for (j=1;j<=y;j++) i*=x; return i; } </script> </HEAD> <body MS_POSITIONING="GridLayout"> <form id="Form1" method="post" runat="server"> <table align="center"> <tr> <td align="center">身份证:<input type="text" name="idCard" id="idCard"></td> </tr> <tr> <td align="center">性 别:<input type="text" name="sex" id="sex"></td> </tr> <tr> <td align="center">生 日:<input type="text" name="birthday" id="birthday"></td> </tr> <tr> <td align="center"><input type="button" onclick="showBirthday(document.all.idCard.value)" value="OK"></td> </tr> </table> </form> </body> </HTML>
[/b][/code]
相关文章推荐
- JS身份证号码验证函数 支持带x的号码
- JS身份证号码验证函数 支持带x的号码
- JS支持带x身份证号码验证函数
- [导入]javascript身份证号码验证函数支持带x
- javascript身份证号码验证函数支持带x类型的身份证
- 身份证号码验证函数支持带x
- 身份证号码验证(JS, 支持15和18位身份证)
- javascript身份证号码验证函数支持带x
- javascript身份证号码验证函数支持带x
- javascript 身份证号码验证函数(可辨真伪,支持15或18位身份证号)测试误差为0
- javascript身份证号码验证函数支持带x
- (转)身份证号码验证函数支持带x
- javascript身份证号码验证函数支持带x
- JS编写函数实现对身份证号码最后一位的验证功能
- js验证身份证号码包括最后一位字母
- js实现身份证号码验证
- JS身份证号码验证
- JavaScript身份证号码验证-支持新的带x身份证
- JS正则表达式验证身份证号码
- php与js方式验证手机号码和邮件地址的合法性,js验证身份证号码