`
oxidy
  • 浏览: 162616 次
  • 性别: Icon_minigender_1
  • 来自: 吉林长春
社区版块
存档分类
最新评论

身份证验证代码-----javascript篇

阅读更多
js 代码
  1. <script language=javascript>   
  2. function checkIdcard(idcard){   
  3.   
  4. 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:"国外"}    
  5.   
  6. var idcard,Y,JYM;   
  7. var S,M;   
  8. var idcard_array = new Array();   
  9. idcard_array = idcard.split("");   
  10. //地区检验   
  11. if(area[parseInt(idcard.substr(0,2))]==nullreturn 4;   
  12. //身份号码位数及格式检验   
  13. switch(idcard.length){   
  14. case 15:   
  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 )){   
  16. 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}$/;//测试出生日期的合法性   
  17. else {   
  18. 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}$/;//测试出生日期的合法性   
  19. }   
  20. if(ereg.test(idcard)) return 0;   
  21. else return 2;   
  22. break;   
  23. case 18:   
  24. //18位身份号码检测   
  25. //出生日期的合法性检查    
  26. //闰年月日:((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]))   
  27. //平年月日:((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]))   
  28. if ( parseInt(idcard.substr(6,4)) % 4 == 0 || (parseInt(idcard.substr(6,4)) % 100 == 0 && parseInt(idcard.substr(6,4))%4 == 0 )){   
  29. 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]$/;//闰年出生日期的合法性正则表达式   
  30. else {   
  31. 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]$/;//平年出生日期的合法性正则表达式   
  32. }   
  33. if(ereg.test(idcard)){//测试出生日期的合法性   
  34. //计算校验位   
  35. S = (parseInt(idcard_array[0]) + parseInt(idcard_array[10])) * 7   
  36. + (parseInt(idcard_array[1]) + parseInt(idcard_array[11])) * 9   
  37. + (parseInt(idcard_array[2]) + parseInt(idcard_array[12])) * 10   
  38. + (parseInt(idcard_array[3]) + parseInt(idcard_array[13])) * 5   
  39. + (parseInt(idcard_array[4]) + parseInt(idcard_array[14])) * 8   
  40. + (parseInt(idcard_array[5]) + parseInt(idcard_array[15])) * 4   
  41. + (parseInt(idcard_array[6]) + parseInt(idcard_array[16])) * 2   
  42. + parseInt(idcard_array[7]) * 1    
  43. + parseInt(idcard_array[8]) * 6   
  44. + parseInt(idcard_array[9]) * 3 ;   
  45. Y = S % 11;   
  46. M = "F";   
  47. JYM = "10X98765432";   
  48. M = JYM.substr(Y,1);//判断校验位   
  49. if(M == idcard_array[17]) return 0; //检测ID的校验位   
  50. else return 3;   
  51. }   
  52. else return 2;   
  53. break;   
  54. default:   
  55. return 1;   
  56. break;   
  57. }   
  58. }   
  59.   
  60.         function CheckForm()   
  61.         {   
  62.         var Errors=new Array(   
  63. "验证通过!",   
  64. "身份证号码位数不对!",   
  65. "身份证号码出生日期超出范围或含有非法字符!",   
  66. "身份证号码校验错误!",   
  67. "身份证地区非法!"  
  68. );   
  69.         var result=checkIdcard(document.getElementById("txt_sfzmhm").value);   
  70.         if(result!=0)   
  71.         {   
  72.         alert(Errors[result]);   
  73.                 document.getElementById("txt_sfzmhm").focus();   
  74.                 return false;           
  75.         }           
  76.             if(document.getElementById("txt_djzsxxdz").value=="")   
  77.             {   
  78.                 alert('请输入你的登记住所详细地址!');   
  79.                 document.getElementById("txt_djzsxxdz").focus();   
  80.                 return false;   
  81.             }   
  82.             return true;   
  83.         }   
  84.   
  85. //================================================   
  86. //地区选择   
  87. function RemoveAllOption(obj)   
  88. {   
  89.   var len = obj.length-1;   
  90.   for(var i=len; i>=0; i--)   
  91.   {   
  92.      obj.options.remove(i);   
  93.   }   
  94. }   
  95. function AddEmptyOption(obj)   
  96. {   
  97.    obj.options.add(new Option("",""));   
  98. }   
  99. function FirstChangeOption1(ele,first,second,field)   
  100. {   
  101.   RemoveAllOption(second);   
  102.   second.options.add(new Option(first.options[first.selectedIndex].text,""));    
  103.   var TempOptionStr;   
  104.     var SkillCode = field.value;   
  105.     var currentValue = first.value;   
  106.     if (currentValue.length >= 2){   
  107.         var arrValue = SkillCode.split(";");   
  108.         for (var i=0;i<arrValue.length;i++){   
  109.             var arrOneValue = arrValue[i].split(",");   
  110.             if (currentValue.substr(0,2) == arrOneValue[0].substr(0,2)) {    //查找到合适的项目   
  111.              if( arrOneValue[0].length >2 && arrOneValue[0] != currentValue)   
  112.              {   
  113.                     TempOptionStr= ' '+arrOneValue[1];   
  114.                     second.options.add(new Option(TempOptionStr,arrOneValue[0]));   
  115.              }   
  116.             }   
  117.         }   
  118.     }   
  119.    if (second.options.length <= 1) {    
  120.    second.style.display='none'; document.getElementById(ele).value = first.value ;   
  121.    }   
  122.     else  second.style.display='';  }   
  123. function FirstChangeOption2(ele,first,second,third,field)   
  124. {   
  125.   RemoveAllOption(second);   
  126.   second.options.add(new Option(first.options[first.selectedIndex].text,""));  RemoveAllOption(third);   
  127.   AddEmptyOption(third);   
  128.   var TempOptionStr;   
  129.     var SkillCode = field.value;   
  130.     var currentValue = first.value;   
  131.     if (currentValue.length >= 2){   
  132.         var arrValue = SkillCode.split(";");   
  133.         for (var i=0;i<arrValue.length;i++){   
  134.             var arrOneValue = arrValue[i].split(",");    
  135.             if (currentValue.substr(0,2) == arrOneValue[0].substr(0,2)) {    //查找到合适的项目   
  136.                 var IsZero = true;    
  137.                 var ssub = arrOneValue[0].substr(4);   
  138.                 for(var j=0; j<ssub.length;j++)   
  139.                 {   
  140.                     if(ssub.substring(j,j+1) != "0")   
  141.                     {   
  142.                        IsZero = false;   
  143.                        break;   
  144.                     }   
  145.                 }   
  146.              if(IsZero && arrOneValue[0]!=currentValue)   
  147.              {   
  148.                    TempOptionStr= ' '+arrOneValue[1];   
  149.                    second.options.add(new Option(TempOptionStr,arrOneValue[0]));   
  150.              }   
  151.             }   
  152.         }   
  153.     }   
  154. document.getElementById(ele).value = first.value;   
  155.   
  156. if (second.options.length <= 1) second.style.display='none'; else second.style.display='';   
  157. if (third.options.length <= 1) third.style.display='none'; else third.style.display=''; }   
  158. function SecondChangeOption(ele,second,third,field)   
  159. {   
  160.   RemoveAllOption(third);   
  161.   third.options.add(new Option(second.options[second.selectedIndex].text.replace(' ',''),""));   
  162.     var TempOptionStr;   
  163.     var SkillCode = field.value;   
  164.     var currentValue = second.value;   
  165.     if (currentValue.length!=0){   
  166.         var arrValue = SkillCode.split(";");   
  167.         for (var i=0;i<arrValue.length;i++){   
  168.             var arrOneValue = arrValue[i].split(",");   
  169.             if (arrOneValue[0].length>4 && arrOneValue[0] != currentValue  && currentValue.substring(0,4) == arrOneValue[0].substr(0,4)) {    //查找到合适的项目   
  170.                 TempOptionStr= ' '+arrOneValue[1];   
  171.                 third.options.add(new Option(TempOptionStr,arrOneValue[0]));   
  172.             }   
  173.         }   
  174.     }   
  175. document.getElementById(ele).value = second.value;    
  176.   
  177. if (third.options.length <= 1) third.style.display='none'; else third.style.display=''; }   
  178. function ThirdChangeOption(ele,third)   
  179. {   
  180.    document.getElementById(ele).value = third.value ;   
  181.      
  182.       
  183. }   
  184.   
  185.         </script>   
  186.   
  187.   
  188. 其中idcard为身份证号。  

 

原文地址【http://www.hxhnet.com/article.asp?id=165】

分享到:
评论

相关推荐

    javascript身份证号码验证-支持15位和18位带x身份证

    网上很多关于身份证校验的javascript代码,不过都没给全,以下是我添加全了函数一起提供的,希望对大家有所帮助。 javascript身份证号码验证-支持18位带x身份证。

    javascript身份证验证代码.docx

    javascript身份证验证代码.docx

    18位身份证号码验证代码

    18位身份证号码验证代码,js验证 ,javascript验证18位身份证代码,js验证身份证号码。

    JavaScript实现身份证验证代码实例

    这篇文章主要介绍了JavaScript实现身法证验证代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 function isIdCardNo(num) { num = num.toUpperCase();...

    javascript身份证验证代码

    代码如下: [removed] //验证身份证号方法 var test=function(idcard){ var Errors=new Array(“验证通过!”,”身份证号码位数不对!”,”身份证号码出生日期超出范围或含有非法字符!”,”身份证号码校验错误!”,”...

    JavaScript实现身份证验证代码

    18位身份证号码各位的含义 1-2位省、自治区、直辖市代码; 3-4位地级市、盟、自治州代码; 5-6位县、县级市、区代码; 7-14位出生年月日,比如19670401代表1967年4月1日; 15-17位为顺序号,其中17位男为单数,女为...

    JS代码实例身份证验证页面

    根据身份证验证规则,做的一个简单的验证身份证第十八位真伪的JS实例,主要是输入身份证计算第十八位数,判断输入身份证真伪,无毒无木马。

    js身份证验证

    web前台开发,完整的javascript身份证验证代码

    身份证号码验证代码

    对身份证号码的复杂逻辑 进行验证, 可讲15位身份证自动转换为18位身份证号码进行验证

    JAVASCRIPT身份证验证码

    用JavaScript脚本验证身份证真实性的代码

    JavaScript 身份证号有效验证详解及实例代码

    实名验证是不指望了,不过原来的验证规则太过简单,只是简单的验证了身份证长度,现在业务需要加强下身份证验证规则,网上找到了不少资料,不过都不合偶的心意,无奈只好直接写一个,代码还是用自己的舒服哈 ...

    javascript验证香港身份证的格式或真实性

    本文分享了利用javascript验证香港身份证的格式或真实性的代码,具有很好的参考价值,下面跟着小编一起来看下吧

    javascript代码常用大全

    6.3 身份证的验证 二、功能类 1、时间与相关控件类 1.1 日历 1.2 时间控件 1.3 万年历 1.4 显示动态显示时钟效果(文本,如OA中时间) 1.5 显示动态显示时钟效果 (图像,像手表) 2、表单类 ...

    Javascript表单验证控件(Validator v1.05).rar

    Javascript表单验证控件(Validator v1.05).rar --------------------------------- 内含以下两个文件: Validator.chm(详细的使用帮助文档) validator.js(源代码,当然没有prototype.js强大,但最...

    javascript 常用代码大全

    6.3 身份证的验证 二、功能类 1、时间与相关控件类 1.1 日历 1.2 时间控件 1.3 万年历 1.4 显示动态显示时钟效果(文本,如oa中时间) 1.5 显示动态显示时钟效果 (图像,像手表) 2、表单类 ...

    javascript验证身份证号

    我们在做互联网网站时,注册个人资料时,经常要用到身份证号,我们需要对身份证进验证,不然别人随便输个号码就通过,让你感觉这个网站做得很shit。 身份证号是有规则的。 结构和形式  1.号码的结构  公民身份...

Global site tag (gtag.js) - Google Analytics