JAVASCRIPT/주민번호확인 프로그램

주민번호 확인 프로그램

정윤재 2008. 11. 6. 10:23

<%@ page language="java" contentType="text/html; charset=EUC-KR"
    pageEncoding="EUC-KR"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
 <head>
  <title>주민등록번호 확인 프로그램</title>
  <meta http-equiv="Content-Type" content="text/html; charset=EUC-KR">
  <script language="javascript">
   error_msg=false;
   function Checking() {   
    if(!JuminCheck(document.j_check.jnum_01.value, document.j_check.jnum_02.value)) {
     alert("잘못된 주민등록번호입니다");
     error_msg = true
     }
     else {
      alert("확인된 주민등록번호입니다");
     return !error_msg
     }
    }
    
   function JuminCheck(jnum_01, jnum_02) {
    check_jumin = false
    //잘못된 생년월일을 검사합니다.
    b_Year = (jnum_02.charAt(0)<="2")?"19":"20"
    /*2000년부터 성구별 번호가 바뀌였슴으로 구별수가 2보다 작다면

    1900년도 생이되고 2보다 크다면 2000년도 이상생이 됩니다.
    단 1800년도 생은 계산에서 제외합니다. */

    b_Year += jnum_01.substr(0,2)

    //주민번호의 앞에서 2자리를 이어서 4자리의 생년을 저장합니다.
    b_Month = jnum_01.substr(2,2)-1

    //달을 구합니다.1을 뺀것은 자바스크립트에서는 1월을 0으로 표기하기 때문입니다.
    b_Date = jnum_01.substr(4,2)
    
    b_sum = new Date(b_Year, b_Month, b_Date)
    if(b_sum.getYear()%100!=jnum_01.substr(0,2)||b_sum.getMonth()!=b_Month||b_sum.getDate()!=b_Date)
    {
     return check_jumin
     //생년월일의 타당성을 검사하여 거짓이 있을시 에러메세지를 나타냄
    }
    total = 0
    temp = new Array(13)

    //주민등록번호를 배열로 넣기위해 지정합니다.
    for(i=1;i<=6;i++)temp[i]=jnum_01.charAt(i-1)

    //앞자리 6개의수를 배열에 대입합니다.
    for(i=7;i<=13;i++)temp[i]=jnum_02.charAt(i-7)

    //뒷자리 7개의 수를 배열에 대입합니다.
    for(i=1;i<=12;i++) {
     k=i+1
     if(k>=10)k=k%10+2
     /* 각수와 곱할 수를 뽑아냅니다.곱수가 만일 10보다 크거나 같다면
     계산식에 의해 2로 다시 시작하게 됩니다. */
     
      total=total+(temp[i]*k)
      //각 자리수와 계산수를 곱한값을 변수 total에 누적합산시킵니다.
     }
    last_num=(11-(total%11))%10
    //마지막 계산식을 변수 last_num 에 대입합니다.
    if(last_num==temp[13])check_jumin=true
    else check_jumin = false
    //laster_num 이 주민번호의 마지막수와 같은면 참을 틀리면 거짓을 반환합니다.
     return check_jumin
    }
    //앞 주민번호6자리를 누르면 자동으로 다음 칸으로 넘어가게합니다.
    function check() {
    var str = document.j_check.jnum_01.value.length;
    if(str == 6)
     document.j_check.jnum_02.focus();
    }
       
  </script>  
 </head>
  
 <body bgcolor="#ffffff" text="#000000">
  <form name="j_check" onSubmit="return Checking()">
   <input type="text" name="jnum_01" size="6"  OnKeyUp="check();" maxlength="6""/>-
   <input type="text" name="jnum_02" size="7" maxlength="7"/><p>
   <input type="submit" value="확인" name="B1"/>
  </form>  
  <font size=2><b>주민등록번호</b>를 입력하시고 <b>확인</b>버튼을 눌러주세요.</font>     
 </body>
</html>