function CheckSSN() {
//--------------------------------
// 주민번호 체킹을 위한 기본 변수 선언
//----------------------------------
var f = document.regiform; // '폼 이름' 변수 선언
var ssn = f.u_ssn.value; //주민번호 13자리값
var key = "234567892345"; // 주민번호 생성 key 값
var sum = 0; // 곱해서 더한 총합
var yy = ssn.substring(0,2); //년도에 해당하는 두자리.
var mm = ssn.substring(2,4); //달에 해당하는 두자리.
var dd = ssn.substring(4,6); //날짜에 해당하는 두자리.
var sex = ssn.charAt(6); //성별에 해당하는 한자리.
var pre_yy = (sex == "1" || sex == "2") ? "19" : "20"; //성별에 따른 년도 두자리생성
var totalyy = pre_yy + yy ; //실제 년도 완성(윤년에 따른 2월 일(날짜) 범위 체크시 사용)
if(!ssn) return; //OnBlur()를 사용했기때문에 넣어줌.
//--------------------------------
// 숫자만 입력했는지 검사
//---------------------------------
if(isNaN(ssn)) {
alert("주민등록번호는 숫자만 입력가능합니다.");
f.u_ssn.value=="";
f.u_ssn.focus();
return;
}
//--------------------------------
// 주민번호가 13자리인지 체킹
//---------------------------------
if (ssn.length != 13) {
alert("주민등록번호 13자리이어야 합니다.");
return;
}
//--------------------------------
// 월,성별의 입력 범위 유효성 검사
//---------------------------------
if((mm<01||mm>12||sex>4)){
alert("월에 해당하는 두자리가 잘못 입력되었습니다.");
f.u_ssn.value="";
f.u_ssn.focus();
return;
}
//--------------------------------------------------
// 월에 따른 날짜의 범위가 적합한지 검사(윤년체크도 포함)
//--------------------------------------------------
if (mm==01 || mm==03 || mm==05 || mm==07 || mm==08 || mm==10 || mm==12) test_dd=31;
if (mm==04 || mm==06 || mm==09 ||mm==11) test_dd=30;
if (mm==02) {
if (((totalyy % 4)==0) && ((totalyy % 100)!=0) || ((totalyy % 400)==0)) test_dd=29;
else test_dd=28;
}
if (dd > test_dd) {alert("일자가 틀립니다.");return; }
//--------------------------------------
// 성별 비트에 따라 성별 자동으로 설정하기
//--------------------------------------
if((sex=="1") || (sex=="3")){
f.u_sex.value="남자"
} else {f.u_sex.value="여자"
}
//----------------------------------------------
// 주민등록 생성 알고리즘에 의한 마지막 번호 유효성 검사
//-----------------------------------------------
for(i=0;i<12;i++){
sum += ssn.charAt(i)*key.charAt(i);
}
sum=11-(sum % 11)
endNo=sum%10;
if (ssn.charAt(12) != endNo){
alert("\n 유효하지 않는 주민번호입니다.\n\n 다시 확인하시고 입력해 주세요");
f.u_ssn.value = "";
f.u_ssn.focus();
return;
}
}
'IT > JSP' 카테고리의 다른 글
JSP 페이지 이동 4가지 방법 (0) | 2015.11.16 |
---|---|
JSP - 한/영 전환 (가능/불가능) (0) | 2014.07.20 |
JSP - keypress를 이용한 영문, 숫자, 특수문자 금지 (0) | 2014.07.20 |