[JavaScript] 주민등록번호 유효성 검사
- Web/JavaScript
- 2018. 7. 3.
주민등록번호에는 유효성 검사 로직이 있습니다. 그 방법은 다음과 같습니다. 맨 마지막 한 자리를 제외하고 각 자릿수의 숫자들에 각각 지정된 숫자들을 곱해서, 그 값을 모두 더합니다.
1 | 2 | 3 | 4 | 5 | 6 | - | 1 | 2 | 3 | 4 | 5 | 6 | 7 |
X | X | X | X | X | X | X | X | X | X | X | X | X | |
2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 2 | 3 | 4 | 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] 폰트 (색상,크기,스타일) 변경하기
'Web > JavaScript' 카테고리의 다른 글
[JavaScript] Span태그의 속성(글꼴,색상,크기,스타일) 변경하기 (0) | 2018.07.05 |
---|---|
[JavaScript] 회원가입 폼 유효성검사 (정규식) (1) | 2018.07.04 |
[JavaScript] 자바스크립트란 무엇인가? (7) | 2018.07.01 |
[JavaScript] 홈페이지 접속한시간 알려주기 (0) | 2017.10.11 |