`
Angelialily
  • 浏览: 241595 次
  • 性别: Icon_minigender_2
  • 来自: 北京
社区版块
存档分类
最新评论

js 验证身份证真伪

阅读更多

<html>  
  <head>  
  <title>abc</title>

<script language="javaScript">
 
/*验证身份证的完整函数(限中国)*/

function onCheck(){
var  idCard = document.getElementById("ic");

if(idCard.value==""){

alert("身份证号不能为空!");
}else{

checkIdcard(idCard.value);
}


}

function checkIdcard(idcard){   
  
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();   
idcard_array = idcard.split("");   
//地区检验   
if(area[parseInt(idcard.substr(0,2))]==null) return 4;  


alert(idcard.length);
//身份号码位数及格式检验   
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 0;
}else{
return 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 0; //检测ID的校验位   
else return 3;   
}else{
return 2;   
break;
}   
default:   
return 1;   
break;   
}   
}   
</script>

<input type="text" value="" id="ic" name="ic" />
<input type="button"  value="OK" name="btn1" onclick="onCheck();"/>

</body>
</html>
分享到:
评论

相关推荐

    js身份证号的验证真伪和地区

    这是验证身份证真伪的核心步骤。脚本遍历身份证号码的前17位数字,按一定权重计算总和,再根据总和计算出预期的校验码。如果计算出的校验码与身份证号码的第18位匹配,则身份证号码有效。 具体算法如下: - 将...

    注册身份证验证的js

    用于注册时验证身份证是否正确 可以支持验证真伪 根据验证省份

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

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

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

    接下来,我们来解析和验证身份证的各个部分。 1. 字母部分:由1至2个英文字母组成。验证时,首先将输入的身份证字符串转换为大写,然后通过正则表达式匹配出字母部分,同时检查长度是否合法。 2. 数字部分:由6个...

    javascript 身份证号码验证函数(可辨真伪,支持15或18位身份证号)测试误差为0

    本话题主要介绍一个JavaScript身份证号码验证函数,该函数具备辨真伪的功能,并能兼容15位和18位的身份证号码。 身份证号码是由15位或18位数字组成,其中包含出生日期、地市级行政区域代码、顺序码和校验码。18位...

    华视身份证读卡器二次开发SDK开发说明

    - `VerifyCard()`:验证身份证真伪,通过对比读取的数据与官方数据库信息。 - `ControlDevice()`:控制读卡器的操作,如启动读卡、取消读卡等。 5. **开发流程** - 初始化:在应用程序启动时,调用`OpenDevice()...

    神思二代证读卡控件V3.0.0.2.rar

    同时,它还能验证身份证的真伪,防止伪造或篡改,确保信息的安全性。 其次,SDRdCard.cab文件是该控件的组件之一,它是 Cabinet 文件格式,通常用于存储多个文件并提供压缩,是安装过程中的重要组成部分。神思二代...

    新中新二代身份证读卡插件安装包与身份证阅读器网页控件

    - 验证身份证真伪,通过内置的防伪算法检查身份证的有效性和真实性。 - 自动上传身份证信息至系统,减少手动输入错误,提高工作效率。 - 支持批量读取,适用于需要大量处理身份证信息的场景,如酒店入住、公司入职等...

    php验证是否是md5编码的简单代码

    代码很简单,使用了正则...带验证具体实现方法php实现加减法验证码代码php中filter函数验证、过滤用户输入的数据js和php邮箱地址验证的实现方法使用php验证复选框有效性的示例php不用正则验证真假身份证PHP5中GD库生成

    validadorCPF:使用 Jquery 进行 CPF 验证

    CPF(Cadastro de Pessoas Físicas)是巴西个人身份证号,用于税务和其他官方记录。...这些文件可能包括JavaScript文件(如`validacpf.js`)、CSS文件(用于样式调整)以及可能的示例或测试文件。

    php_mysql_zhengshuchaxun.zip

    这个系统可能用于教育、企业或政府机构,允许用户在线查找和验证各种证书的真伪。描述中提到的“数据库名称,账号,密码:chafenba”提供了关于数据库连接的基本信息,这可能是开发者在本地环境进行测试时使用的默认...

    技术人员求职简历模板免费下载.doc

    4. **技能列表**:罗列你的技术专长,如编程语言(Java、Python、C++等)、框架(React、Angular、Vue.js等)、数据库管理(SQL、NoSQL)、操作系统(Linux、Windows)等。确保这些技能与应聘职位相符。 5. **工作...

Global site tag (gtag.js) - Google Analytics