728x90
반응형

/*====================================
Validation 관련
*====================================*/
//*----------------------------------------------------------------
//* 주민번호 형식 check(뒤 7자리)
//* parameter : 주민번호 뒤자리
//* return value : 0(적합), -1(부적합)
//*-----------------------------------------------------------------
function g_doCheckPreResnoLength(szPreResno)
{
if ( szPreResno.length == 7 ) {
return 0;
} else {
return -1;
}

}



//*----------------------------------------------------------------
//* 주민등록번호 적합성 여부 체크 함수
//* parameter : val1 주민번호앞 6자리
: val2 주민번호뒤 7자리
//* return value : ture(적합), false(부적합)
//* remark ; 2008-12-05 외국인체크로직추가
//*-----------------------------------------------------------------
function g_checkJumin(val1, val2)
{
var tmp1, tmp2, tmp3;
var t1, t2, t3, t4, t5, t6;
var t11, t12, t13, t14, t15, t16, t17;

var tot;
var result;

tmp1 = toNumber(SubStr(val1, 2, 2));
tmp2 = toNumber(SubStr(val1, 4));
tmp3 = toNumber(SubStr(val2, 0, 1));

if ( g_doCheckProResnoLength(val1) == -1) return false;
if ( g_doCheckProResnoLength(val2) == -1) return false;
if ((tmp1 < 1 || (tmp1 > 12)) return false;
if ((tmp2 < 1 || (tmp2 > 31)) return false;

t1 = toNumber(SubStr(val1, 0, 1)); //0
t2 = toNumber(SubStr(val1, 1, 1)); //1
t3 = toNumber(SubStr(val1, 2, 1)); //2
t4 = toNumber(SubStr(val1, 3, 1)); //3
t5 = toNumber(SubStr(val1, 4, 1)); //4
t6 = toNumber(SubStr(val1, 5, 1)); //5
t11 = toNumber(SubStr(val2, 0, 1)); //6
t12 = toNumber(SubStr(val2, 1, 1)); //7
t13 = toNumber(SubStr(val2, 2, 1)); //8
t14 = toNumber(SubStr(val2, 3, 1)); //9
t15 = toNumber(SubStr(val2, 4, 1)); //10
t16 = toNumber(SubStr(val2, 5, 1)); //11
t17 = toNumber(SubStr(val2, 6, 1)); //12

if ( tmp3 >= 5 && tmp <= 8 ) {
//외국인
if ( t16 < 6 ) return false;

var odd = t12 * 10 + t13;
if ( odd%2 != 0 ) return false;

tot = t1*2 + t2*3 + t3*4 + t4*5 + t5*6 + t6*7 +
t11*8 + t12*9 + t13*2 + t14*3 + t15*4 + t16*5;
result = tot % 11;
result = 11-result;

if(result >= 10) result -= 10;
result += 2;
if (result >= 10) result -= 10;

} else {
//내국인
tot = t1*2 + t2*3 + t3*4 + t4*5 + t5*6 + t6*7 +
t11*8 + t12*9 + t13*2 + t14*3 + t15*4 + t16*5;
result = tot % 11;
result = 11-result;
result = result%10;
}

if ( result == t17) {
return true;
} else [
return false;
}
}






if ( szPreResno.length == 7 ) {
return 0;
} else {
return -1;
}

}

728x90
반응형

+ Recent posts