자바스크립트에 약해서 질문드립니다 ㅜㅜ(주민번호 체크시) > 그누4 질문답변

그누4 질문답변

그누보드4 관련 질문은 QA 로 이전됩니다. QA 그누보드4 바로가기
기존 게시물은 열람만 가능합니다.

자바스크립트에 약해서 질문드립니다 ㅜㅜ(주민번호 체크시) 정보

자바스크립트에 약해서 질문드립니다 ㅜㅜ(주민번호 체크시)

본문

회원 가입시 회원명과 주민번호 필드를 각각 하나씩 쓰게끔 되어있는것을
주민번호 필드를 두개를 주고 하나는 maxlength를 6 또 하나는 7로
필드 두개로 넘기려고 하는데요..
 
<input type="text" name=jumin1 itemname="주민등록번호" required jumin minlength="6" maxLength=6 style="width:60;height:18;border-width:1; border-color:rgb(204,204,204); border-style:solid;"> - <input type="password" name=jumin2 itemname="주민등록번호" required jumin minlength="7" maxLength=7 style="width:70;height:18;border-width:1; border-color:rgb(204,204,204); border-style:solid;">
 
요렇게 말이죠...
문제는 maxlength 값을 체크하는 자바스크립트 부분입니다 ;;
 
function wrestJumin(fld)
    {
       if (!wrestTrim(fld)) return;
       var pattern = /(^[0-9]{13}$)/;
       if (!pattern.test(fld.value))
       {
           if (wrestFld == null)
           {
               wrestMsg = wrestItemname(fld) + " : 주민등록번호를 13자리 숫자로 입력하십시오.\n";
               wrestFld = fld;
           }
       }
       else
       {
            var sum_1 = 0;
            var sum_2 = 0;
            var at=0;
            var juminno= fld.value;
            sum_1 = (juminno.charAt(0)*2)+
                    (juminno.charAt(1)*3)+
                    (juminno.charAt(2)*4)+
                    (juminno.charAt(3)*5)+
                    (juminno.charAt(4)*6)+
                    (juminno.charAt(5)*7)+
                    (juminno.charAt(6)*8)+
                    (juminno.charAt(7)*9)+
                    (juminno.charAt(8)*2)+
                    (juminno.charAt(9)*3)+
                    (juminno.charAt(10)*4)+
                    (juminno.charAt(11)*5);
            sum_2=sum_1 % 11;
            if (sum_2 == 0)
                at = 10;
            else
            {
                if (sum_2 == 1)
                    at = 11;
                else
                    at = sum_2;
            }
            att = 11 - at;
            // 1800 년대에 태어나신 분들은 남자, 여자의 구분이 9, 0 이라는
            // 얘기를 들은적이 있는데 그렇다면 아래의 구문은 오류이다.
            // 하지만... 100살넘은 분들이 주민등록번호를 과연 입력해볼까?
            if (juminno.charAt(12) != att ||
                juminno.substr(2,2) < '01' ||
                juminno.substr(2,2) > '12' ||
                juminno.substr(4,2) < '01' ||
                juminno.substr(4,2) > '31' ||
                juminno.charAt(6) > 4)
            {
               wrestMsg = wrestItemname(fld) + " : 올바른 주민등록번호가 아닙니다.\n";
               wrestFld = fld;
            }
        }
    }
-----------------------------------------------------------------------------------
저부분 때문에 alert 창으로 주민등록번호:13자리를 입력하여야 합니다.
라고 떠버리네요..
요걸 어떻게 바꿔야 할지 모르겠습니다..
 

댓글 전체

function wrestJumin1(fld)  // 주민번호 앞자리

function wrestJumin2(fld)  // 주민번호 뒷자리

펑션을 따로 분리해서 소스를 작성하셔야 되지 않을까요?
전체 66,554 |RSS
그누4 질문답변 내용 검색

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1402호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT