`
oxidy
  • 浏览: 166538 次
  • 性别: 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身份证验证代码.docx

    本文将详细解读一份用于验证身份证号码有效性的JavaScript代码。 首先,中国的身份证号码由18位数字组成,其中前17位为身份码,最后一位可能是数字或字母X,作为校验码。校验码的计算方法相对复杂,它涉及到前17位...

    身份证验证javascript脚本

    根据提供的信息,我们可以总结出以下有关“身份证验证JavaScript脚本”的关键知识点: ### 身份证验证原理 身份证号码在中国通常有两种格式:15位和18位。这两种格式都有其特定的验证规则。 #### 15位身份证号码...

    身份证号码验证程序 javascript验证的html文件

    这个压缩包中的"身份证验证程序.html"文件是一个使用JavaScript编写的HTML页面,它用于验证输入的身份证号码是否合法。以下是对这个知识点的详细阐述: 1. **HTML(超文本标记语言)**:HTML是构建网页的基础,它...

    18位身份证号码验证代码

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

    JS 身份证验证程序

    本文将深入探讨如何使用JavaScript进行身份证验证,包括有效性检查和区域信息识别。 身份证验证是确保用户输入的有效身份证号码的关键步骤,这对于很多需要用户身份验证的场景非常重要,如注册、实名认证等。在中国...

    javascript身份证验证

    通过上述分析和代码示例,我们可以看到JavaScript实现身份证验证的过程和细节。这不仅有助于提升用户输入的准确性,也是数据安全和隐私保护的重要一环。在实际应用中,开发者应根据具体需求调整和完善这些验证逻辑,...

    身份证号验证HTML代码

    这个示例中的JavaScript代码首先检查了身份证号码的基本格式,然后通过`city.js`中的数据验证行政区域代码,再检查出生日期是否合理,最后计算校验码并与输入的校验码对比。如果所有验证都通过,就会在页面上显示...

    java以及JavaScript的香港身份证验证方法。.pdf

    Java 和 JavaScript 的香港身份证验证方法主要涉及对香港身份证号码格式的有效性检查,通过特定的算法来确定号码是否合法。在 Java 和 JavaScript 中,这个验证过程包括以下步骤: 1. **预处理身份证号码**: - 在...

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

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

    javascript身份证验证代码

    本文将详细介绍如何使用JavaScript编写身份证验证的代码,确保用户输入的身份证号码符合中国的身份证格式。 首先,中国的身份证号码分为15位和18位两种形式。15位身份证号码在新规定实施后已不再发放,但可能存在于...

    身份证号验证程序javascript

    本篇详细介绍了如何使用JavaScript编写一个身份证号码验证程序。通过对输入的身份证号码进行多方面的检查,可以有效防止非法数据被提交至服务器,从而提高了系统的安全性和用户体验。开发者可以根据实际需求调整和...

    从盛大通行证上摘下来的身份证验证js代码.docx

    这篇文档提供的JavaScript代码片段是一个从盛大通行证系统中提取出来的身份证验证功能。这个功能的主要目的是检查输入的身份证号码是否符合中国大陆身份证号码的规则。 首先,让我们详细了解一下这段代码的工作原理...

    JavaScript实现身份证验证代码

    在本文中,我们将详细探讨如何使用JavaScript语言来实现对身份证号码...需要注意的是,身份证验证是一个敏感的操作,涉及到用户隐私和信息安全,因此在实际应用中应当谨慎处理这些数据,并且要符合相关法律法规的要求。

    正则表达式 JS 身份证验证

    ### 正则表达式 JS 身份证验证详解 身份证号码在中国大陆地区具有唯一性,是个人身份的重要标识。为了确保信息安全和个人隐私保护,在很多应用系统中都需要对身份证号码进行合法性和格式性的验证。本文将详细阐述...

    JavaScript截取手机号码 手机验证 身份证验证等等

    身份证验证涉及到更复杂的校验规则,包括地区代码、出生日期、顺序号和校验码等。以下是一个简单的18位身份证号码验证函数: ```javascript function validateIdCard(id) { const idRegex = /(^\d{15}$)|(^\d{18}$...

    身份证校验javascript验证方法

    4. **CommonValidation.js**:这个文件可能是包含通用验证功能的JavaScript库,可能包含了多种数据验证方法,如邮箱、手机号码等,身份证验证只是其中之一。这种模块化的设计使得代码更易于复用和维护。 5. **...

    JS的身份证验证

    本文将详细解析一个JavaScript身份证验证函数,不仅探讨其背后的逻辑,还会深入解释正则表达式、日期计算以及校验码计算等关键知识点。 #### 核心知识点 1. **正则表达式(Regular Expressions)** - 正则表达式...

    JS脚本验证集合-JavaScript

    对于需要输入纯数字的场景,如电话号码、身份证号等,可以使用以下代码: ```html (/[^\d]/g,'')" onbeforepaste="clipboardData.setData('text',clipboardData.getData('text').replace(/[^\d]/g,''))" ID="Text2...

    javascript 多种验证代码

    以下是一些常见的JavaScript验证代码示例: 1. **数字验证**: - **整数验证**:使用正则表达式`/^(-|\+)?\d+$/.test(str)`检查字符串是否为整数,包括正负整数。 - **大于0的整数验证**:`/^\d+$/.test(str)`...

Global site tag (gtag.js) - Google Analytics