주민등록번호 가 유효한 지 검증 하 는 js 작은 예

1912 단어 html
신분증 번 호 를 검사 하 는 작은 예 를 보 니 괜찮다.

<html>
	<head>
		<title>          </title>
	</head>
	<body>
		        :<input type="text" size="20" id="asidinput" />
		<input type="button" value="  " onclick="alert(cidInfo(asidinput.value))" />
		<script>
			var aCity={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:"  "} 
			function cidInfo(sId){
			var iSum=0;
			var info="";
			if(!/^\d{17}(\d|x)$/i.test(sId))return false;
			sId=sId.replace(/x$/i,"a");
			if(aCity[parseInt(sId.substr(0,2))]==null)return "Error:    ";
			sBirthday=sId.substr(6,4)+"-"+Number(sId.substr(10,2))+"-"+Number(sId.substr(12,2));
			var d=new Date(sBirthday.replace(/-/g,"/"))
			if(sBirthday!=(d.getFullYear()+"-"+ (d.getMonth()+1) + "-" + d.getDate()))return "Error:    ";
			for(var i = 17;i>=0;i --) iSum += (Math.pow(2,i) % 11) * parseInt(sId.charAt(17 - i),11);
			if(iSum%11!=1)return "Error:    ";
			return aCity[parseInt(sId.substr(0,2))]+","+sBirthday+","+(sId.substr(16,1)%2?" ":" ")
			}
		</script>
	</body>
</html>	

좋은 웹페이지 즐겨찾기