`
liuhuijun
  • 浏览: 17619 次
  • 性别: Icon_minigender_1
  • 来自: 厦门
文章分类
社区版块
存档分类
最新评论

js验证身份证号码的有效方法

 
阅读更多

<SCRIPT>
function   checkIdcard(idcard){  
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:"xingjiang",71:"台湾",81:"香港",82:"澳门",91:"国外"}    
   
var   idcard,Y,JYM;  
var   S,M;  
var   idcard_array   =   new   Array();  
idcard_array   =   idcard.split("");  
//地区检验  
if(area[parseInt(idcard.substr(0,2))]==null)   return   Errors[4];  
//身份号码位数及格式检验  
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))   return   Errors[0];  
else   return   Errors[2];  
break;  
case   18:  
//18位身份号码检测  
//出生日期的合法性检查    
//闰年月日:((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]))  
//平年月日:((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]))  
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])   return   Errors[0];   //检测ID的校验位  
else   return   Errors[3];  
}  
else   return   Errors[2];  
break;  
default:  
return   Errors[1];  
break;  
}  
}

 

function check(){
 var sf=document.f1.idcard.value;
 
   if(checkIdcard(document.f1.idcard.value)!="验证通过!")
   {
    alert(checkIdcard(document.f1.idcard.value));
    return false;
 }
   
}
</SCRIPT>

<form action="" name="f1" method="post">
<input name="idcard" type="idcard" class="input1" value="">
<input name="Submit22" type="button" class="input9" value="确定" onClick="check() ">
</form>

分享到:
评论

相关推荐

    验证身份证号码有效性的js

    要使用JavaScript验证身份证号码,我们首先需要定义一个函数,例如`isValidIDCard`,接收一个身份证号码作为参数。这个函数的核心就是校验码的计算过程。以下是一个简单的实现: ```javascript function ...

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

    验证身份证号码的完整JavaScript函数可能如下所示: ```javascript function isIdCard(id) { var regex = /^[1-9]\d{5}(18|19|20)\d{2}(0[1-9]|1[0-2])(0[1-9]|[12][0-9]|3[01])\d{3}[\dXx]$/; if (!regex.test...

    JS验证身份证号码合法性.txt

    JS验证身份证号码合法性

    Js验证身份证号码 Demo例子里有完整的Js代码

    身份证号码验证; Demo例子里有完整的Js代码; 末位为X或x都能验证; 老身份证号码15位的也可以验证是否正确; 完整验证新老身份证号码的正确性

    js身份证号码验证

    js身份证号码验证 详细全面的身份证号码验证

    js身份证号码获取性别、出生日期、籍贯省市.zip

    4. **校验码**(第18位):基于前17位数字通过特定算法计算得出,用于验证身份证号码的合法性。 要从身份证号码中获取性别,我们只需要查看第17位数字。如果它是奇数,那么这个人是男性;如果是偶数,那么这个人是...

    js验证身份证格式

    在JavaScript中,验证身份证号码通常涉及以下步骤: 1. **长度检查**:检查输入的身份证号码长度,必须是15位或18位。 2. **字符类型检查**:身份证号码只包含数字,因此需要确保输入的字符串仅包含0-9的数字。 3. ...

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

    在这个例子中,JavaScript代码负责处理用户的输入,进行身份证号码的有效性验证。 3. **身份证号码验证规则**:中国的身份证号码由18位数字组成,包括地区码、出生日期码、顺序码和校验码。验证时需检查: - 地区...

    JS验证身份证及获取地区功能示例

    首先,身份证验证是确保用户输入的身份证号码合法的关键步骤。身份证号码由18位数字组成,前6位代表行政区划代码,接下来的7位是出生日期,接着的3位是顺序码,最后一位是校验码。JS中可以使用正则表达式进行验证: ...

    正则表达式 JS 身份证验证

    2. **精确模式**:更加细致地验证身份证号码的格式,包括检查出生日期的合理性等。 ```javascript /^(\d{6})(18|19|20)?(\d{2})([01]\d)([0123]\d)(\d{3})(\d|X)?$/ ``` 该正则表达式能够更准确地验证18位身份证...

    js 验证身份证信息有效性.docx

    在JavaScript开发中,有时我们需要对用户输入的数据进行验证,确保其符合特定的格式或规则。...同时,考虑到隐私保护,验证身份证号码时应遵循最小权限原则,只在必要时进行验证,并避免存储或泄露用户的敏感信息。

    18位身份证号码验证代码

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

    javaScript 验证身份证号是否正确,并能获取户口所在地。

    javaScript实现验证身份证是否正确,并能获取户口所在地。 调用方式: 引入idCard.js var msg = idCard.checkIdCard(身份证号); msg为 "正确" 时验证正确,否则返回错误信息 身份证正确时调用 var address = ...

    javascript 身份证号码格式验证

    运用javascript进行身份证号码格式验证。

    身份证号码号码验证JS

    身份证号码号码验证JS。可以非常严格的对所输入的号码进行验证,特别是有‘X’的,以及二代身份证。

    最全身份证号码验证JS

    最全身份证号码验证JS包含以下内方面内容: 1、验证身份证的长度及格式 2、验证身份证地区是否正确 3、验证身份证上的出生日期是否正确 4、验证身份证号最后一位是否正确 5、根据身份证号验证性别 以上内容希望对有...

    根据身份证号码获取性别、出生日期、籍贯省市的js示例

    6. **JavaScript实现**:在JS文件中编写函数,监听身份证号码输入框的`oninput`事件。当输入发生改变时,调用该函数,根据上述逻辑解析身份证号码并更新相应的显示区域。 7. **事件处理**:在JavaScript中,可以...

Global site tag (gtag.js) - Google Analytics