[JavaScript] 주민등록번호 유효성 검사

주민등록번호에는 유효성 검사 로직이 있습니다. 그 방법은 다음과 같습니다. 맨 마지막 한 자리를 제외하고 각 자릿수의 숫자들에 각각 지정된 숫자들을 곱해서, 그 값을 모두 더합니다. 

 

 1  1 2 3 4 5 6 7
X    X   X   X   X   X   X 
2   8 2 3  5   

 

n1 +n2 +n3 +n4 +n5 +n6  +n7 +n8 +n9 +n10 +n11+n12  =N  각 자릿수에 지정된 수의 곱을  더한 값을 N이라고 하면, N을 11로 나눈 나머지를 11에서 뺀 수가 주민등록번호 마지막 자릿수와 일치하면 정상적인 주민등록번호입니다.

 

주민등록번호 유효성 검사 예제


  
<%@ page language="java" contentType="text/html; charset=EUC-KR"
pageEncoding="EUC-KR"%>
<!DOCTYPE html>
<html>
<head>
<title>회원가입-자바스크립트</title>
<script language="javascript">
function validate() {
var re = /^[a-zA-Z0-9]{4,12}$/ // 아이디와 패스워드가 적합한지 검사할 정규식
var re2 = /^[0-9a-zA-Z]([-_.]?[0-9a-zA-Z])*@[0-9a-zA-Z]([-_.]?[0-9a-zA-Z])*.[a-zA-Z]{2,3}$/i;
// 이메일이 적합한지 검사할 정규식
var num1 = document.getElementById("unum1");
var num2 = document.getElementById("unum2");
var arrNum1 = new Array(); // 주민번호 앞자리숫자 6개를 담을 배열
var arrNum2 = new Array(); // 주민번호 뒷자리숫자 7개를 담을 배열
// -------------- 주민번호 -------------
for (var i=0; i<num1.value.length; i++) {
arrNum1[i] = num1.value.charAt(i);
} // 주민번호 앞자리를 배열에 순서대로 담는다.
for (var i=0; i<num2.value.length; i++) {
arrNum2[i] = num2.value.charAt(i);
} // 주민번호 뒷자리를 배열에 순서대로 담는다.
var tempSum=0;
for (var i=0; i<num1.value.length; i++) {
tempSum += arrNum1[i] * (2+i);
} // 주민번호 검사방법을 적용하여 앞 번호를 모두 계산하여 더함
for (var i=0; i<num2.value.length-1; i++) {
if(i>=2) {
tempSum += arrNum2[i] * i;
}
else {
tempSum += arrNum2[i] * (8+i);
}
} // 같은방식으로 앞 번호 계산한것의 합에 뒷번호 계산한것을 모두 더함
if((11-(tempSum%11))%10!=arrNum2[6]) {
alert("올바른 주민번호가 아닙니다.");
num1.value = "";
num2.value = "";
num1.focus();
return false;
}else{
alert("올바른 주민등록번호 입니다.");
}
}
function check(re, what, message) {
if(re.test(what.value)) {
return true;
}
alert(message);
what.value = "";
what.focus();
//return false;
}
</script>
<style>
@import url(http://fonts.googleapis.com/earlyaccess/nanumpenscript.css);
body{font-family: 'Nanum Pen Script';}
</style>
</head>
<body>
<table width="350" height="100" border="1" align="center" cellspacing="0">
<tr height="10" align="center">
<td colspan="2" style="background:navy;" ><font color=white><b>주민등록 유효성검사</b></font></td>
</tr>
<tr>
<td align="center">주민등록번호:</td>
<td align="center">
<input type="text" name="unum1" id="unum1" size="12" maxlength="6">-</input>
<input type="password" name="unum2" id="unum2" size="12" maxlength="7"></input><br/>
예) 123456-1234567
</td>
</tr>
</table>
<center>
<br/>
<input type="button" value="검사" style="border-radius:5px; font-s" onclick="validate();" />
<input type="reset" value="다시입력" style="border-radius:5px;" />
</center>
</body>
</html>

주민등록검사

 

[JavaScript] 회원가입 폼 유효성검사 (정규식)

[JavaScript] 폰트 (색상,크기,스타일) 변경하기

[JavaScript] Alert(경고창), Prompt(입력창), Confirm(선택창)

[JavaScript] 배경색 바꾸기

[JavaScript] 자바스크립트란 무엇인가?

 

 

댓글

코딩팩토리님의
글이 좋았다면 응원을 보내주세요!

Designed by JB FACTORY