-
function checkJumin(jumin1, jumin2) {
-
/*
-
* 주민번호체크 스크립트
-
* 리턴값
-
* 1 : 정상 주민등록번호
-
* 0 : 비정상 주민등록번호
-
* -1 : 입력인수 숫자 아님
-
* -2 : 입력인수 길이 맞지 않음
-
* -3 : 입력인수 1~4값 아님
-
* -4 : 입력인수 정상적인 생년월일 아님
-
* -5 : 입력인수의 날짜가 오늘(시스템날짜)보다 이후
-
*
-
* by Hy054nz
-
*/
-
var i, tmp, y, m, d, sum = 0;
-
var date, now = new Date();
-
var numArr = new Array(13);
-
var mulNum = new Array(2,3,4,5,6,7,8,9,2,3,4,5);
-
if(isFinite(jumin1) && isFinite(jumin2)) {
-
if(jumin1.length == 6 && jumin2.length == 7) {
-
for(i=0;i<6;i++) numArr[i] = parseInt(jumin1.charAt(i));
-
for(i=0;i<7;i++) numArr[6+i] = parseInt(jumin2.charAt(i));
-
if((numArr[6] > 0) && (numArr[6] < 5) ) {
-
y = numArr[0]*10+numArr[1];
-
m = numArr[2]*10+numArr[3];
-
d = numArr[4]*10+numArr[5];
-
-
y += (numArr[6] < 3) ? 1900 : 2000;
-
-
date = new Date(y, m-1, d);
-
if((date.getYear()%100 == y%100) && (date.getMonth() == m-1) && (date.getDate() == d)) {
-
if(date.getTime() < now.getTime()) {
-
for(i=0;i<12;i++) sum += numArr[i]*mulNum[i];
-
tmp = sum%11;
-
-
if(tmp == 0) tmp = 10;
-
else if(tmp == 1) tmp = 11;
-
-
if((11-tmp) == numArr[12]) return 1;
-
else return 0;
-
} else return -5;
-
} else return -4;
-
} else return -3;
-
} else return -2;
-
} else return -1;
-
}
-
-