身份证有效性校验 javascript实现

取至盛大的,所以版权归盛大在线所有

function nunber(){  var idcard=document.getElementById('u_nunber').value;  var Errors=new Array("验证通过!","身份证号码位数不对!","出生日期超出范围或含有非法字符!","身份证号码校验错误!","身份证地区非法!");  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:"国外"}   var idcard,Y,JYM;  var S,M;  var idcard_array = new Array();  idcardidcard_array = idcard.split("");  if(area[parseInt(idcard.substr(0,2))]==null)   {  document.getElementById('nunber_re').innerHTML="<div class='re'><p class='tipsError'><img src='images/b.gif' class='iconError' />"+Errors[4]+"</p></div>";  return false;  }   switch(idcard.length){     case 15:     if ( (parseInt(idcard.substr(6,2))+1900) % 4 == 0 || ((parseInt(idcard.substr(6,2))+1900) % 100 == 0 && (parseInt(idcard.substr(6,2))+1900) % 4 == 0 )){      ereg=/^[1-9][0-9]{5}[0-9]{2}((01|03|05|07|08|10|12)(0[1-9]|[1-2][0-9]|3[0-1])|(04|06|09|11)(0[1-9]|[1-2][0-9]|30)|02(0[1-9]|[1-2][0-9]))[0-9]{3}$/;     } else {      ereg=/^[1-9][0-9]{5}[0-9]{2}((01|03|05|07|08|10|12)(0[1-9]|[1-2][0-9]|3[0-1])|(04|06|09|11)(0[1-9]|[1-2][0-9]|30)|02(0[1-9]|1[0-9]|2[0-8]))[0-9]{3}$/;     }     if(ereg.test(idcard)){      document.getElementById('nunber_re').innerHTML="<div class='re'><p class='tipsSuc'><img src='images/b.gif' class='iconSuc' />"+Errors[0]+"</p></div>";   return true;      }     else {      document.getElementById('nunber_re').innerHTML="<div class='re'><p class='tipsError'><img src='images/b.gif' class='iconError' />"+Errors[2]+"</p></div>";  return false;       }     break;      case 18:     //18位身份号码检测     if ( parseInt(idcard.substr(6,4)) % 4 == 0 || (parseInt(idcard.substr(6,4)) % 100 == 0 && parseInt(idcard.substr(6,4))%4 == 0 )){     ereg=/^[1-9][0-9]{5}19[0-9]{2}((01|03|05|07|08|10|12)(0[1-9]|[1-2][0-9]|3[0-1])|(04|06|09|11)(0[1-9]|[1-2][0-9]|30)|02(0[1-9]|[1-2][0-9]))[0-9]{3}[0-9Xx]$/;     } else {     ereg=/^[1-9][0-9]{5}19[0-9]{2}((01|03|05|07|08|10|12)(0[1-9]|[1-2][0-9]|3[0-1])|(04|06|09|11)(0[1-9]|[1-2][0-9]|30)|02(0[1-9]|1[0-9]|2[0-8]))[0-9]{3}[0-9Xx]$/;     }     if(ereg.test(idcard)){      S = (parseInt(idcard_array[0]) + parseInt(idcard_array[10])) * 7      + (parseInt(idcard_array[1]) + parseInt(idcard_array[11])) * 9      + (parseInt(idcard_array[2]) + parseInt(idcard_array[12])) * 10      + (parseInt(idcard_array[3]) + parseInt(idcard_array[13])) * 5      + (parseInt(idcard_array[4]) + parseInt(idcard_array[14])) * 8      + (parseInt(idcard_array[5]) + parseInt(idcard_array[15])) * 4      + (parseInt(idcard_array[6]) + parseInt(idcard_array[16])) * 2      + parseInt(idcard_array[7]) * 1       + parseInt(idcard_array[8]) * 6      + parseInt(idcard_array[9]) * 3 ;      Y = S % 11;      M = "F";      JYM = "10X98765432";      M = JYM.substr(Y,1);      if(M == idcard_array[17]){      document.getElementById('nunber_re').innerHTML="<div class='re'><p class='tipsSuc'><img src='images/b.gif' class='iconSuc' />"+Errors[0]+"</p></div>";       return true;      }      else {      document.getElementById('nunber_re').innerHTML="<div class='re'><p class='tipsError'><img src='images/b.gif' class='iconError' />"+Errors[3]+"</p></div>";           return false;      }     }     else {      document.getElementById('nunber_re').innerHTML="<div class='re'><p class='tipsError'><img src='images/b.gif' class='iconError' />"+Errors[2]+"</p></div>";      return false;     }     break;     default:       document.getElementById('nunber_re').innerHTML="<div class='re'><p class='tipsError'><img src='images/b.gif' class='iconError' />"+Errors[1]+"</p></div>";      return false;  }  }

时间: 2024-11-30 23:39:35

身份证有效性校验 javascript实现的相关文章

java身份证合法性校验并提取身份证有效信息_java

java身份证合法性校验并获取身份证号有效信息,供大家参考,具体内容如下 java身份证合法性校验 /**身份证前6位[ABCDEF]为行政区划数字代码(简称数字码)说明(参考<GB/T 2260-2007 中华人民共和国行政区划代码>): * 该数字码的编制原则和结构分析,它采用三层六位层次码结构,按层次分别表示我国各省(自治区,直辖市,特别行政区). * 市(地区,自治州,盟).县(自治县.县级市.旗.自治旗.市辖区.林区.特区). 数字码码位结构从左至右的含义是: 第一层为AB两位代码表

15位和18位身份证JS校验的简单实例_javascript技巧

一.身份证号码的结构和表示形式 1.号码的结构 根据[中华人民共和国国家标准GB11643-1999]中有关公民身份号码的规定,公民身份号码是特征组合码,由十七位数字本体码和一位校验码组成.排列顺序从左至右依次为:六位数字地址码,八位数字出生日期码,三位数字顺序码和一位数字校验码. 2.地址码 表示编码对象常住户口所在县(市.旗.区)的行政区划代码,按GB/T2260的规定执行. 3.出生日期码 表示编码对象出生的年.月.日,按GB/T7408的规定执行,年.月.日代码之间不用分隔符. 4.顺序

JS验证身份证有效性示例_javascript技巧

复制代码 代码如下: function checkIdcard(idcard){ var Errors=new Array( "验证通过", "身份证号码位数不对!", "身份证号码出生日期超出范围或含有非法字符!", "身份证号码校验错误!", "身份证地区非法!" ); var area={11:"北京",12:"天津",13:"河北",14:

在ASP.NET中实现通用的有效性校验

不管在B/S还是C/S中,数据操纵维护与检索,很多时候,都需要判断用户录入信息的有效性.在B/S结 构中,可能还要考虑Sql注入的安全性问题. 既然问题很普遍,我们就应该对该问题进行业务抽象,得到统一的处理方案.在此介绍我们的处理方 式,用于实现在ASP.NET中使用C#语言实现的通用有效性检验. 我们将整个处理方案分为三部分: 1.格式化数据有效性判断,这一部分应该致力做到框架结构的无关性,也就是说,应该做到不管是 C/S结构还是B/S结构,都应该是通用的:数据安全性判断,既然是安全性考虑,原

JAVA 18位身份证号码校验码的算法_JSP编程

public static char doVerify(String id) { char pszSrc[]=id.toCharArray(); int iS = 0; int iW[]={7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2}; char szVerCode[] = new char[]{'1','0', 'X', '9', '8', '7', '6', '5', '4', '3', '2'}; int i; for(i=0;i

javascript实现验证身份证号的有效性并提示_javascript技巧

javascript实现验证身份证号的有效性并提示 function nunber(allowancePersonValue){ if(allowancePersonValue=="身份证号"){ $("#span_username").show(); $("#span_username").html("身份证号不能为空"); return false; } //校验长度,类型 else if(isCardNo(allowan

javascript身份证号有效性验证实现程序

地址码表示编码对象常住户口所在县(市.旗.区)的行政区划代码. 出生日期码表示编码对象出生的年.月.日,其中年份用四位数字表示,年.月.日之间不用分隔符. 顺序码表示同一地址码所标识的区域范围内,对同年.月.日出生的人员编定的顺序号.顺序码的奇数分给男性 偶数分给女性. 校验码是根据前面十七位数字码,按照ISO 7064:1983.MOD 11-2校验码计算出来的检验码. 出生日期计算方法 15位的身份证编码首先把出生年扩展为4位,简单的就是增加一个19或18,这样就包含了所有1800-1999

基于javascript简单实现对身份证校验_javascript技巧

本文实例介绍了javascript简单实现对身份证的校验的关键性代码,分享给大家供大家参考,具体内容如下 var vcity={ 11:"北京",12:"天津",13:"河北",14:"山西",15:"内蒙古", 21:"辽宁",22:"吉林",23:"黑龙江",31:"上海",32:"江苏", 33:&qu

javascript验证身份证号

 我们在做互联网网站时,注册个人资料时,经常要用到身份证号,我们需要对身份证进验证,不然别人随便输个号码就通过,让你感觉这个网站做得很shit. 身份证号是有规则的. 结构和形式 1.号码的结构 公民身份号码是特征组合码,由十七位数字本体码和一位校验码组成.排列顺序从左至右依次为:六位数字地址码,八位数字出生日期码,三位数字顺序码和一位数字校验码. 2.地址码 表示编码对象常住户口所在县(市.旗.区)的行政区划代码,按GB/T2260的规定执行. 3.出生日期码 表示编码对象出生的年.月.日,按