자바스크립트에 약해서 질문드립니다 ㅜㅜ(주민번호 체크시) 정보
자바스크립트에 약해서 질문드립니다 ㅜㅜ(주민번호 체크시)본문
회원 가입시 회원명과 주민번호 필드를 각각 하나씩 쓰게끔 되어있는것을
주민번호 필드를 두개를 주고 하나는 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 (!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;
}
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) // 주민번호 뒷자리
펑션을 따로 분리해서 소스를 작성하셔야 되지 않을까요?
function wrestJumin2(fld) // 주민번호 뒷자리
펑션을 따로 분리해서 소스를 작성하셔야 되지 않을까요?
분리해야 겠다는건 알겠는데요 ㅡㅡ;;;
좀더 자세한답변을..;;; 자바스크립트에 많이 약해서
좀더 자세한답변을..;;; 자바스크립트에 많이 약해서
입력받을때 주민1과2로 받으시고 주민2의 입력이 끝나면 히든에
주민 필드에 값을 합쳐지게 해서 처리하시면 됩니다.
주민 필드에 값을 합쳐지게 해서 처리하시면 됩니다.

ㅋㅋ..
????