본문 바로가기

Story/Javascript

외국인등록번호 생성

반응형
외국인등록번호 생성
http://alnova2.tistory.com/281


<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>

<head>
<title></title>
<script language="javaScript">

function fgn_no_chksum(reg_no)
{
var sum = 0;
var odd = 0;

buf = new Array(13);
for (i = 0; i < 13; i++) buf[i] = parseInt(reg_no.charAt(i));


odd = buf[7]*10 + buf[8];

if (odd%2 != 0)
return false


if ((buf[11] != 6)&&(buf[11] != 7)&&(buf[11] != 8)&&(buf[11] != 9))
return false

multipliers = [2,3,4,5,6,7,8,9,2,3,4,5];
for (i = 0, sum = 0; i < 12; i++) sum += (buf[i] *= multipliers[i]);


sum=11-(sum%11);

if (sum>=10) sum-=10;


sum += 2;


if (sum>=10) sum-=10;


if ( sum != buf[12])
return false
else
return true
}

function check_no(form){
var fgn_reg_no = form.fgn_reg_no1.value
+ form.fgn_reg_no2.value;


if (fgn_reg_no == ''){
alert('외국인등록번호를 입력하십시오.');
return false
}


if (fgn_reg_no.length != 13) {
alert('외국인등록번호 자리수가 맞지 않습니다.');
return false
}
if ((fgn_reg_no.charAt(6) == "5") || (fgn_reg_no.charAt(6) == "6"))
{
birthYear = "19";
}
else if ((fgn_reg_no.charAt(6) == "7") || (fgn_reg_no.charAt(6) == "8"))
{
birthYear = "20";
}
else if ((fgn_reg_no.charAt(6) == "9") || (fgn_reg_no.charAt(6) == "0"))
{
birthYear = "18";
}
else
{
alert("등록번호에 오류가 있습니다. 다시 확인하십시오.");
return false
}
birthYear += fgn_reg_no.substr(0, 2);
birthMonth = fgn_reg_no.substr(2, 2) - 1;
birthDate = fgn_reg_no.substr(4, 2);
birth = new Date(birthYear, birthMonth, birthDate);


if ( birth.getYear() % 100 != fgn_reg_no.substr(0, 2) ||
birth.getMonth() != birthMonth ||
birth.getDate() != birthDate) {
alert('생년월일에 오류가 있습니다. 다시 확인하십시오.');
return false
}


if (fgn_no_chksum(fgn_reg_no) == false){


alert('외국인등록번호에 오류가 있습니다. 다시 확인하십시오.');
return false
}
else {
alert ('정상입니다.');
return true
}


}
</script>
</head>

<body>

<form id="Form1">
외국인등록번호
<input type="text" name="fgn_reg_no1" size="6" maxlength="6" onkeypress="if((event.keyCode <48)||(event.keyCode >57)) event.returnValue=false;" id="Text1">
-
<input type="text" name="fgn_reg_no2" size="7" maxlength="7" onkeypress="if((event.keyCode <48)||(event.keyCode >57)) event.returnValue=false;" id="Text2">
<input type="button" value="지금 검사" onclick="check_no(form);" id="Button1" name="Button1">
</form>

</body>

</html>

반응형