본문 바로가기

스크립트/자바스크립트

주민등록번호 확인. 입력형식은 숫자만

/* 주민등록번호 확인. 입력형식은 숫자만 */
function juminNo(resno) {
// 주민번호의 형태와 7번째 자리(성별) 유효성 검사

    // 날짜 유효성 검사
    birthYear = (resno.charAt(6) <= "2") ? "19" : "20";
    birthYear += resno.substr(0, 2);
    birthMonth = resno.substr(2, 2) - 1;
    birthDate = resno.substr(4, 2);
    birth = new Date(birthYear, birthMonth, birthDate);

    if (birth.getYear() % 100 != resno.substr(0, 2) || birth.getMonth() != birthMonth || birth.getDate() != birthDate) {
        alert("잘못된 주민등록번호입니다.");
        return false;
    }

   var  j=9;
   var  id_chk=0;
   tmp = false;

   if(resno.length!=0){
       object =  new Array(13)
       for(var i=0;i < 13;i++) {
               object[i] = resno.substring(i,i+1)
       }
       var chkdigit = resno.substring(12, 13);
       for(var i=0;i < 12;i++){
        if( i == 8 )
            j = 9;
            object[i]=object[i]*j;
            j--;
            id_chk +=object[i];
       }
       if(((id_chk%11 == 0) && (chkdigit == 1)) || ((id_chk%11 ==10)&& (chkdigit ==0)));

       else if((id_chk %11 != 0) && (id_chk % 11 != 10 ) && (id_chk % 11 == chkdigit));

       else{
            alert("잘못된 주민등록번호입니다.");
            return false;
       }
   }

   return true;
}