티스토리 뷰
function check_juminno(juminno) {
if(juminno=="" || juminno==null || juminno.length!=13) {
alert("주민등록번호를 적어주세요.");
document.form1.jumin_num.value="";
document.form1.jumin_num.focus();
return false;
}
var jumin1 = juminno.substr(0,6);
var jumin2 = juminno.substr(6,7);
var yy = jumin1.substr(0,2); // 년도
var mm = jumin1.substr(2,2); // 월
var dd = jumin1.substr(4,2); // 일
var genda = jumin2.substr(0,1); // 성별
var msg, ss, cc;
// 숫자가 아닌 것을 입력한 경우
if (!isNumeric(jumin1)) {
alert("주민등록번호 앞자리를 숫자로 입력하세요.");
document.form1.jumin_num.value="";
document.form1.jumin_num.focus();
return false;
}
// 길이가 6이 아닌 경우
if (jumin1.length != 6) {
alert("주민등록번호 앞자리를 다시 입력하세요.");
document.form1.jumin_num.value="";
document.form1.jumin_num.focus();
return false;
}
// 첫번째 자료에서 연월일(YYMMDD) 형식 중 기본 구성 검사
if (yy < "00" || yy > "99" ||
mm < "01" || mm > "12" ||
dd < "01" || dd > "31")
{
alert("주민등록번호 앞자리를 다시 입력하세요.");
document.form1.jumin_num.value="";
document.form1.jumin_num.focus();
return false;
}
// 숫자가 아닌 것을 입력한 경우
if (!isNumeric(jumin2)) {
alert("주민등록번호 뒷자리를 숫자로 입력하세요.");
document.form1.jumin_num.value="";
document.form1.jumin_num.focus();
return false;
}
// 길이가 7이 아닌 경우
if (jumin2.length != 7) {
alert("주민등록번호 뒷자리를 다시 입력하세요.");
document.form1.jumin_num.value="";
document.form1.jumin_num.focus();
return false;
}
// 성별부분이 1 ~ 4 가 아닌 경우
if (genda < "1" || genda > "4") {
alert("주민등록번호 뒷자리를 다시 입력하세요.");
document.form1.jumin_num.value="";
document.form1.jumin_num.focus();
return false;
}
// 연도 계산 - 1 또는 2: 1900년대, 3 또는 4: 2000년대
cc = (genda == "1" || genda == "2") ? "19" : "20";
// 첫번째 자료에서 연월일(YYMMDD) 형식 중 날짜 형식 검사
if (isYYYYMMDD(parseInt(cc+yy), parseInt(mm), parseInt(dd)) == false) {
alert("주민등록번호 앞자리를 다시 입력하세요.");
document.form1.jumin_num.value="";
document.form1.jumin_num.focus();
return false;
}
// Check Digit 검사
if (!isSSN(jumin1, jumin2)) {
alert("입력한 주민등록번호를 검토한 후, 다시 입력하세요.");
document.form1.jumin_num.value="";
document.form1.jumin_num.focus();
return false;
}
return true;
}
function isYYYYMMDD(y, m, d) {
switch (m) {
case 2: // 2월의 경우
if (d > 29) return false;
if (d == 29) {
// 2월 29의 경우 당해가 윤년인지를 확인
if ((y % 4 != 0) || (y % 100 == 0) && (y % 400 != 0))
return false;
}
break;
case 4: // 작은 달의 경우
case 6:
case 9:
case 11:
if (d == 31) return false;
}
// 큰 달의 경우
return true;
}
function isNumeric(s) {
for (i=0; i<s.length; i++) {
c = s.substr(i, 1);
if (c < "0" || c > "9") return false;
}
return true;
}
function isSSN(s1, s2) {
n = 2;
sum = 0;
for (i=0; i<s1.length; i++)
sum += parseInt(s1.substr(i, 1)) * n++;
for (i=0; i<s2.length-1; i++) {
sum += parseInt(s2.substr(i, 1)) * n++;
if (n == 10) n = 2;
}
c = 11 - sum % 11;
if (c == 11) c = 1;
if (c == 10) c = 0;
if (c != parseInt(s2.substr(6, 1))) return false;
else return true;
}
'IT 관련 > FrontEnd' 카테고리의 다른 글
| 커서모양 :: CURSOR (0) | 2009.03.26 |
|---|---|
| class 선택 :: getElementByClass (0) | 2009.03.15 |
| 메타태그 (0) | 2009.03.12 |
| TAG :: FORM (0) | 2009.03.11 |
| TAG :: Table (0) | 2009.03.11 |
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
TAG
- Flash
- 버그가많아
- 윈도우7
- SQL
- 그리스몽키
- 김해
- java
- 창원
- MySQL
- window7
- Firefox
- 지름신
- ubuntu
- react
- 먹는게 남는다
- Linux
- 횟집
- html tag
- 짬뽕
- Mac
- code
- 불여우
- 아이폰
- 파이어폭스
- 진례
- 일식
- 인터넷 속도
- 마산
- 플스
- 원어데이
| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 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 |
글 보관함
정통부 주민번호체크.js