http://www.ishappy.net
오늘은 동주연정이가 사랑을 시작한지 4993일째,
[결혼]한지 3502일째 되는 날입니다.
사랑한지 5000일째 되는 날은
2017년 11월 26일입니다.
결혼한지 3600일째 되는 날은
2018년 02월 25일입니다.
PROFILE
BOARD
팁 & 테크
오늘의 영어
GALLERY
LINK
팁 & 테크

제목: 외국인 등록번호 체크하는 스크립트
분류: HTML/JavaScript
이름: 유동주(voice74) * http://www.ishappy.net


등록일: 2006-07-28 16:04
조회수: 3527 / 추천수: 800


function fgn_no_chksum(reg_no) {
    var sum = 0;
    var odd = 0;
    
    buf = new Array(13);
    for (i = 0; i < 13; i++) buf[i] = parseInt(reg_no.charAt(i));

    odd = buf[7]*10 + buf[8];
    
    if (odd%2 != 0) {
      return false;
    }

    if ((buf[11] != 6)&&(buf[11] != 7)&&(buf[11] != 8)&&(buf[11] != 9)) {
      return false;
    }
    
    multipliers = [2,3,4,5,6,7,8,9,2,3,4,5];
    for (i = 0, sum = 0; i < 12; i++) sum += (buf[i] *= multipliers[i]);


    sum=11-(sum%11);
    
    if (sum>=10) sum-=10;

    sum += 2;

    if (sum>=10) sum-=10;

    if ( sum != buf[12]) {
        return false;
    }
    else {
        return true;
    }
}



<script language='javaScript'>
function check_no(form){
        var fgn_reg_no = form.fgn_reg_no1.value
                         + form.fgn_reg_no2.value;

if (fgn_reg_no == ''){
  alert('외국인등록번호를 입력하십시오.');
  return false;
}

if (fgn_reg_no.length != 13) {
  alert('외국인등록번호 자리수가 맞지 않습니다.');
  return false;
}
        if ((fgn_reg_no.charAt(6) == "5") || (fgn_reg_no.charAt(6) == "6"))
        {
           birthYear = "19";
        }
        else if ((fgn_reg_no.charAt(6) == "7") || (fgn_reg_no.charAt(6) == "8"))
        {
           birthYear = "20";
        }
        else if ((fgn_reg_no.charAt(6) == "9") || (fgn_reg_no.charAt(6) == "0"))
        {
           birthYear = "18";
        }
        else
        {
          alert("등록번호에 오류가 있습니다. 다시 확인하십시오.");
          return false;
        }        
        birthYear += fgn_reg_no.substr(0, 2);
        birthMonth = fgn_reg_no.substr(2, 2) - 1;
        birthDate = fgn_reg_no.substr(4, 2);
        birth = new Date(birthYear, birthMonth, birthDate);
        
        if ( birth.getYear() % 100 != fgn_reg_no.substr(0, 2) ||
             birth.getMonth() != birthMonth ||
             birth.getDate() != birthDate) {
          alert('생년월일에 오류가 있습니다. 다시 확인하십시오.');
          return false;
        }
        
        if (fgn_no_chksum(fgn_reg_no) == false){
        
            alert('외국인등록번호에 오류가 있습니다. 다시 확인하십시오.');
            return false;
        }
        else {
            alert ('정상입니다.');
            return true;
        }
    
}
</script>
</head>
<boby>
<form>
외국인등록번호
<input type='text' name='fgn_reg_no1' size=6 maxlength=6 onKeyPress='if((event.keyCode <48)||(event.keyCode >57)) event.returnValue=false;'>
-
<input type='text' name='fgn_reg_no2' size=7 maxlength=7 onKeyPress='if((event.keyCode <48)||(event.keyCode >57)) event.returnValue=false;'>
<input type='button' value='지금 검사' onClick='check_no(form);'>
</form>

-추천하기     -목록보기  
의견(코멘트)을 작성하실 수 없습니다. 이유: 권한이 없는 회원레벨
△ 이전글: 클라이언트에 배포된 MiPlatform 파일들 제거 방법
▽ 다음글: PHP에서 Excel로 저장하기
Copyright 1999-2017 Zeroboard / skin by DQ'Style 
다음은 웹 페이지에서 이메일 주소를 긁어가는 스패머들을 위한 선물입니다. :-)
[root@localhost], [admin@localhost], [webmaster@localhost], [abuse@localhost], [webmaster@cwd.go.kr], [cnpa100@npa.go.kr]
Copyright (C)2005 Yoo, Dong Ju (, )