일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
- C/C++
- scala
- 책이야기
- ajax
- php
- express for node.js
- ror실행
- Eclipse
- 메일왕창보내는법
- 도커
- 나의 취미
- Lift
- rss
- 나의 프로젝트
- 베트남어
- nodejs express
- 디즈니씨
- 스킨 스쿠버
- Cross
- 명사 분석기
- php thumbnail
- iBatis
- Node.js
- flex3
- 주식이야기
- node.js web framework
- 명사 뽑아내기
- ejb
- 명사 추출기
- docker
- Today
- Total
nkdk의 세상
JS :: 입력번호 검증 본문
- 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>