728x90
[미리보기]
주민번호 검사는 회원가입시에 주로 많이 쓰인다.
하지만 100%검사는 되지 않고 다만 잘못된 형태의 주민번호는 검사할수 있다.
주민번호 생성기로 만들어진 주민번호는 체크가 되지 않는다.
그것까지 체크할려면 실명인증 서비스를 제공하는곳에 서비스를 신청하여야 한다. 그건 가격이 비싸다. -,-

<script language="javascript">
<!--
//주민등록번호 검사
function jumin_check() {
if (document.myform.jumin1.value.length != 6) { // 앞번호가 6개 아니라면
alert("앞번호의 개수가 모자랍니다. 더 적으세요.^^");
document.myform.jumin1.focus(); //커서를 주민번호 앞자리에 놓는다.
return false;
} else if (document.myform.jumin2.value.length != 7) { //뒷자리가 7개가 아니라면
alert("뒷번호의 개수가 모자랍니다. 더 적으세요.^^");
document.myform.jumin2.focus(); //커서를 주민번호 뒷자리에 놓는다.
return false;
} else {
var strjumin1 = document.myform.jumin1.value; //변수에 주민번호 앞자리 담음
var strjumin2 = document.myform.jumin2.value; //변수에 주민번호 뒷자리 담음
var digit=0
for (var i=0;i<strjumin1.length;i++) { //주민번호 앞자리의 길이만큼 for문을 돌린다.
var strdigit=strjumin1.substring(i,i+1); //앞자리중 i번째와 i+i번째 문자를 변수에 담는다.
if (strdigit<'0' || strdigit>'9') { //strdigit 의 값이 0보다 작거나 9보다 크면
digit=digit+1 //digit에 1을 더한다.
}
}
if ( digit != 0 ) { //digit가 0이 아니라면
alert('주민등록번호에는 0에서 9까지의 숫자만 적을 수 있습니다.\n\n다시 확인하고 입력해 주세
요.');
document.myform.jumin1.focus();
return false;
}
var digit1=0
for (var i=0;i<strjumin2.length;i++) { // 주민번호 뒷자리의 길이만큼 for문을 돌린다.
var strdigit1=strjumin2.substring(i,i+1);
if (strdigit1<'0' || strdigit1>'9') {
digit1=digit1+1
}
}
if ( digit1 != 0 ) {
alert('주민등록번호에는 0에서 9까지의 숫자만 적을 수 있습니다.\n\n다시 확인하고 입력해 주세
요.');
document.myform.jumin2.focus();
return false;
}
if (strjumin1.substring(2,3) > 1) { //주민번호 월 부분의 첫째 숫자가 1보다 클경우
alert('잘못될 \'월\'을 입력했습니다.\n\n다시 확인하고 입력해 주세요.');
document.myform.jumin1.focus();
return false;
}
if (strjumin1.substring(4,5) > 3) { //주민번호 일 부분의 첫째 숫자가 3보다 클경우
alert('잘못된 \'일\'을 입력했습니다.\n\n다시 확인하고 입력해 주세요.');
document.myform.jumin1.focus();
return false;
}
if (strjumin2.substring(0,1) > 4 || strjumin2.substring(0,1) == 0) { //주민번호 뒷자리의 첫째숫자가
4보다 클경우
alert('주민등록번호에서 성별을 나타내는 숫자는 1에서 4까지입니다.\n\n다시 확인하고 입력해 주
세요.');
document.myform.jumin2.focus();
return false;
}
var a1=strjumin1.substring(0,1) //주민번호 계산법
var a2=strjumin1.substring(1,2)
var a3=strjumin1.substring(2,3)
var a4=strjumin1.substring(3,4)
var a5=strjumin1.substring(4,5)
var a6=strjumin1.substring(5,6)
var checkdigit=a1*2+a2*3+a3*4+a4*5+a5*6+a6*7
var b1=strjumin2.substring(0,1)
var b2=strjumin2.substring(1,2)
var b3=strjumin2.substring(2,3)
var b4=strjumin2.substring(3,4)
var b5=strjumin2.substring(4,5)
var b6=strjumin2.substring(5,6)
var b7=strjumin2.substring(6,7)
var checkdigit=checkdigit+b1*8+b2*9+b3*2+b4*3+b5*4+b6*5
checkdigit = checkdigit%11
checkdigit = 11 - checkdigit
checkdigit = checkdigit%10
if (checkdigit != b7) {
alert('잘못된 주민등록번호입니다.\n\n다시 확인하고 입력해 주세요.');
document.myform.jumin1.value=" ";
document.myform.jumin2.value=" ";
document.myform.jumin1.focus();
return false;
}
}
return true;
}
//-->
</script>
<form name = "myform" action="aa.asp" onsubmit="return jumin_check()">
주민번호 :
<input name="jumin1" value="" type="text" size="6" maxlength="6">-<input name="jumin2" value=""
type="text" size="7" maxlength="7">
<input type="submit" name="button" value="확인">
</form>
728x90

'Information' 카테고리의 다른 글

HTTP 에러 코드 및 내용  (0) 2007.03.04
Window객체의 속성  (0) 2007.03.04
하룻동안 창 띄우지 않기  (0) 2007.03.04

+ Recent posts