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>
2006/12/03 23:12 2006/12/03 23:12
보이수(유동주) 이 작성.

Trackback URL : http://www.ishappy.net/tc/trackback/5


당신의 의견을 작성해 주세요.

[로그인][오픈아이디란?]