使用javascript实现身份证校验与信息提取

Posted 小白ii

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用javascript实现身份证校验与信息提取相关的知识,希望对你有一定的参考价值。

我们先了解一下身份证是怎么校验的:

将前面的身份证号码17位数分别乘以不同的系数,将这17位数字和系数相乘的结果相加,然后除以11求余,根据最后的余数对应校验码,判断身份证是否符合要求。

现在我们开始写代码

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
	<p>身份证号:<input type=\'text\' id=\'idCard\'/></p>
	<P>出生日期:<input type=\'text\' readonly id=\'age\'/></P>
	<P>
		性  别:<input type=\'radio\' disabled name=\'sex\' id=\'man\'>男
		<input type=\'radio\' name=\'sex\' disabled id=\'woman\'>女
	</P>
	<P>籍  贯:<input type=\'text\' readonly id=\'dess\'></P>
	<button type=\'button\' id=\'btnSub\'>确定</button>
	
	<script src=\'js/jquery-1.11.3.min.js\'></script>
	<script>
	$("#btnSub").click(function(){

		var idCard = $("#idCard").val();


		//根据身份证不同的位置,截取相对应的数据
		var sex = idCard.substring(16,17);
		var num = idCard.substring(17,18);
		var year = idCard.substring(6,10);
		var month = idCard.substring(10,12);
		var day = idCard.substring(12,14);
		var age = year+"-"+month+"-"+day;
		var date = new Date(age);
		var sum = 0;
		var arr = [7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2,0];
		var arr2 = [1,0,\'X\',9,8,7,6,5,4,3,2];
		
		//判断身份证是否为空,或者长度有没有达到要求(这里规定身份证18位)
		if(!(idCard && /^[\\d]{18}$/.test(idCard))){
			alert("身份证输入格式不对!")
			return false;
		}else{
			
			//计算第18位数 是否符合要求
			for(var i=0;i<18;i++){
				sum += idCard.substring(i,i+1)*arr[i]
			}
			if(num== arr2[sum%11] || num===arr2[sum%11]){

				$("#age").val(age)
				if(sex%2 == 1){
					$("#man").prop("checked","true")
				}else{
					$("#woman").prop("checked","true")
				}

				$.ajax({
					url:"IdCardServlet",
					type:"get",
					data:{idCard:idCard},
					success:function(data){
						$.each(data,function(index,obj){
							$("#dess").val(obj.detail);
						})
					}
				})
			}else{
				alert("身份证输入格式不对!")
				$("#man").removeAttr("checked")
				$("#woman").removeAttr("checked")
				$("#dess").val("");
				$("#age").val("");
				return false;
			}
			
		}
		
	})
	
	</script>
</body>
</html>

效果图:

如果需要显示籍贯的话,需要那对应的数字去数据库中查找显示。

 

以上是关于使用javascript实现身份证校验与信息提取的主要内容,如果未能解决你的问题,请参考以下文章

使用Java编写Hive的UDF实现身份证号码校验及15位升级18位

使用Java编写Hive的UDF实现身份证号码校验及15位升级18位

JavaScript脚本语言实现表单数据校验

Web API使用记录系列OAuth授权与身份校验

js实现手机号码和身份证号码校验

Javascript 正则校验身份证