주민번호검증하기2
- charCodeAt() : 해당인덱스에 해당하는 문자의 ascii코드값을 반환합니다.
- substring(x, y) : 인덱스[x]값에서부터 인덱스[y]값이전까지의 문자열을 반환합니다.
* 주민등록번호의 공식
주민등록번호의 13자리로 이루어져 있습니다.
- 처리1 : [첫번째번호*2] + [두번째번호*3] + [세번째번호*4] + [네번째번호*5] + [다섯번째번호*6]
+ [여섯번째번호*7] + [일곱번째번호*8] + [여덟번째번호*9] + [아홉번째번호*2] + [열번째번호*3]
+ [열한번째번호*4] + [열두번째번호*5]의 합
- 처리2 : [처리1값] % 11
- 처리3 : [[처리1값] - [처리2값]] + 11 - [처리1값]
- 처리4 : [처리3값] % 10
- 처리5 : [처리3값] - [[처리3값] - [처리4값]]
----------------------------------------------------------------------------------------
<html>
<script language="JavaScript">
<!--
function name_check(ch_name) { /* 이름체크 */
var len = ch_name.length;
if (len < 2) { /* 이름은 두자이상 */
alert("이름이 잘못되었습니다.");
frm1.myname.focus();
return false;
}
for (i=0; i<len; i++) {
var mycode = ch_name.charCodeAt(i); /* 해당인덱스 문자의 ascii코드값 */
if (mycode < 128) { /* 128이상은 한글 */
alert("한글 이름으로 입력하세요");
frm1.myname.focus();
return false;
}
}
return true;
}
function jumin_check(ssn_jumin) { /* 주민번호 확인 */
var ssn_num = new Array();
var ssn_jumin1 = new String(ssn_jumin); /* 입력된 숫자의 문자열화 */
if (ssn_jumin1.length != 13) {
alert("주민등록번호 13자리인지를 확인하여 주십시오");
frm1.jumin1.focus();
return false;
}
for (var i=0; i<=12; i++)
ssn_num[i] = ssn_jumin1.substring(i, i+1); /* [i]에서 [i+1]까지 문자를 추출 */
/* 주민등록번호 공식의 시작 */
var sum = 2*ssn_num[0] + 3*ssn_num[1] + 4*ssn_num[2] + 5*ssn_num[3];
sum += 6*ssn_num[4] + 7*ssn_num[5] + 8*ssn_num[6] + 9*ssn_num[7];
sum += 2*ssn_num[8] + 3*ssn_num[9] + 4*ssn_num[10] + 5*ssn_num[11];
var r1 = sum % 11;
var temp = (sum-r1) + 11 - sum;
var r2 = temp % 10;
var temp1 = temp - (temp-r2);
/* 주민등록번호 공식의 끝 */
if (ssn_num[12] != temp1) { /* 해당 주민번호를 검증 */
alert("올바른 주민등록번호가 아닙니다.");
return false;
}
return true;
}
function frm_check() { /* 각 함수를 호출/확인한다. */
var jumin_name = frm1.myname.value;
var jumin_num = frm1.jumin1.value + frm1.jumin2.value;
if (name_check(jumin_name) == false)
return false;
if (jumin_check(jumin_num) == false)
return false;
}
-->
</script>
<body onload="frm1.myname.focus();">
<table border=1 cellpadding=5 cellspacing=2 bordercolor="#bbddaa">
<form name="frm1" onsubmit="return frm_check()">
<tr>
<td bgcolor="#aacc99" align="center">이 름</td>
<td bgcolor="#cceebb"><input type="text" name="myname" maxlength=10 size=10></td>
</tr>
<tr>
<td bgcolor="#aacc99">주민등록번호</td>
<td bgcolor="#cceebb">
<input type="text" name="jumin1" maxlength=6 size=6>-
<input type="text" name="jumin2" maxlength=7 size=7>
</td>
</tr>
<tr>
<td colspan=2 align="center">
<input type="submit" value=" 확인 ">
</td>
</tr>
</form>
</table>
</body>
</html>
출처: 인터넷
'IT-개발,DB' 카테고리의 다른 글
[개발/javascript] 미디어 플레이어 객체 제어하기 (0) | 2015.01.14 |
---|---|
[개발/javascript] 미디어 플레이어의 화면구조 (0) | 2015.01.03 |
[개발/javascript] 사업자등록번호 검증하기 (0) | 2014.12.30 |
[개발/javascript] 문서로딩시간 확인하기 (0) | 2014.12.22 |
[개발/랭킹] The AQB Ratings System Formulae (0) | 2014.12.22 |
댓글