`

二代身份证校验

    博客分类:
  • js
阅读更多
百度一搜就能搜到很多身份证校验的例子,这个是最近做项目参考百度文库的demo修改后的
一,js:
//身份验证
function checkIdCard(idCard){
	var sexId;
	var sexText;
	var age;
	
	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 Y, JYM;
	var S, M;
	var idcard_array = new Array();
	idcard_array = idCard.split("");
	if (area[parseInt(idCard.substr(0, 2))] == null){
		return Errors[1];
	}
	if(18!=idCard.length){
		return Errors[4];
	}
	
  if(18==idCard.length){
  	  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[3]; 
			}
		}else{
			return Errors[2]; 
		}
		var year =  idCard.substring(6,10);   
        var month = idCard.substring(10,12);   
        var day = idCard.substring(12,14);   
        var temp_date = new Date(year,parseFloat(month)-1,parseFloat(day)); 
		 if(temp_date.getFullYear()!=parseFloat(year)   
          ||temp_date.getMonth()!=parseFloat(month)-1   
          ||temp_date.getDate()!=parseFloat(day)){   
			return Errors[2]; 
		}
		 return 0;
  }
  return 0;
}


二,页面中引用
if(checkIdCard(idCard)!="0"){
					$.dialog({type: "warn", content:checkIdCard(idCard), modal: true, autoCloseTime: 3000});
					return false;
				}


附件中是参考的文档
分享到:
评论

相关推荐

    C#版二代身份证读卡器阅读程序

    标题 "C#版二代身份证读卡器阅读程序" 指出的是一个使用C#编程语言编写的软件应用,其主要功能是与二代身份证读卡器进行交互,从而读取和处理身份证上的信息。二代身份证读卡器是一种硬件设备,能够非接触式地读取...

    易语言精伦二代身份证读卡

    在“易语言精伦二代身份证读卡”这个项目中,我们主要探讨的是如何利用易语言来实现对精伦二代身份证读卡器的操作。 精伦二代身份证读卡器是一种专门用于读取中国第二代身份证信息的硬件设备。第二代身份证包含了...

    二代身份证读卡例程vb

    【二代身份证读卡例程vb】是一个VB(Visual Basic)编程示例,专门设计用于与二代身份证读卡设备进行交互。二代身份证,全称为“中华人民共和国第二代居民身份证”,采用了RFID(Radio Frequency Identification,...

    身份证校验码方法-Java

    根据提供的信息,我们可以总结出以下关于“身份证校验码方法-Java”的知识点: ### 一、身份证号码结构 中国的第二代居民身份证号码由18位组成,包括了以下几个部分: - **前6位**:行政区划代码。 - **第7至14位*...

    swift-iOS中国二代身份证号扫描识别

    在iOS应用开发中,"swift-iOS中国二代身份证号扫描识别"是一个常见的需求,尤其是在涉及到用户身份验证或者个人信息录入的场景。此项目可能是一个利用Swift编程语言实现的库或者示例,用于帮助开发者高效准确地读取...

    二代身份证阅读器 bs开发

    【二代身份证阅读器 BS 开发】是指在浏览器服务器(Browser/Server)模式下,利用Web技术进行第二代身份证信息读取和处理的应用开发。二代身份证内嵌有RFID芯片,存储了个人的基本信息,如姓名、性别、出生日期、...

    通过excel公共函数计算二代公民身份证号码末位校验码知识.pdf

    Excel 公共函数计算二代公民身份证号码末位校验码知识 通过 Excel 公共函数计算二代公民身份证号码末位校验码是基于 GB 11643-1999 和 IOS 7064 的计算规则,用于计算 18 位身份证号码的最后一位校验码。该计算规则...

    js实现二代身份证号码验证详解

    在当今社会,个人身份信息的管理越来越重要,二代身份证号码作为我国公民的身份标识,具有极其重要的作用。二代身份证号码由18位数字组成,遵循中华人民共和国国家标准GB11643-1999,其中前6位为地址码,代表了...

    JAVA验证身份证号码校验码是否正确.zip

    身份证号码是中国公民重要的个人身份标识,它包含了个人的出生日期和地区的编码信息,并且通过一个校验码来确保号码的准确性。在Java编程中,验证身份证号码的校验码是否正确是一项常见的任务,特别是在处理个人信息...

    通用二代身份证Delphi读卡源码..rar

    标题中的“通用二代身份证Delphi读卡源码”指的是使用Delphi编程语言编写的软件源代码,用于读取中国第二代身份证的信息。Delphi是一种基于Object Pascal的集成开发环境(IDE),常用于创建Windows桌面应用程序。它...

    一代15位身份证二代18位身份证正则表达式校验.md

    一代15位身份证二代18位身份证正则表达式校验,带详细注释,每个字符注释,大厂通用

    代码整理-二代身份证SDK.rar

    在这个案例中,二代身份证SDK帮助开发者集成身份证读取、验证和处理的功能,通常包括扫描身份证、提取信息、校验真伪等操作。 2. **DLL(Dynamic Link Library)**: DLL是Windows操作系统中的共享库文件,它包含...

    二代身份证ICR-100bSDK智能接口二次开发包V1.1

    **二代身份证ICR-100bSDK智能接口二次开发包V1.1详解** 本文将详细介绍二代身份证ICR-100bSDK智能接口二次开发包V1.1的相关知识点,帮助开发者理解和掌握如何利用该开发包进行系统集成与应用开发。 1. **身份证...

    IDCardOCR_China, 基于tesseract,实现摄像头扫描识别中国二代身份证.zip

    《基于Tesseract的中国二代身份证OCR技术详解》 在当今数字化时代,自动识别技术在各个领域都有着广泛的应用,其中身份证识别技术尤其重要。本项目“IDCardOCR_China”是针对中国第二代身份证(简称“二代证”)...

    详解正则表达式实现二代身份证号码验证

    二代身份证号码一般为18位数字,前6位为地址码,接下来的8位为出生日期码,之后的3位为顺序码,最后一位为校验码。以下知识点将详细介绍如何使用正则表达式对二代身份证号码进行验证。 1. 正则表达式基础知识点 ...

    身份证验证开发包

    在IT行业中,身份证验证是一项重要的安全措施,尤其在涉及到个人身份认证、实名制场景时。这个名为“身份证验证开发包”的工具专为验证第二代身份证设计,它可以帮助开发者读取身份证上的信息并处理相关图像,确保...

    二代身份证验证示例

    // 该身份证校验码:3 } ``` 四、说明 1. 该程序可以根据已有的17位数字本体码,获取对应的验证码。 2. 该程序可以剔除验证码不正确的身份证号码。 3. 15位的身份证出生年份采用年份后2位,没有最后1位校验码。 ...

    第二代身份证验证函数

    第二身份证的验证函数,需要的就拿去吧。 哎太不厚道了。

    基于第二代身份证号码最后一位的编码规则的验证规则.R

    基于第二代身份证号码最后一位的编码规则的验证规则: 判定条件一:第二代身份证号码位数一共18位 判定条件二:根据身份证最后一位号码的编码的规则

Global site tag (gtag.js) - Google Analytics