본문중에 주민등록번호 포함 여부 체크 #


주민번호 자리수 체크부분( isJuminno() )은 인터넷에서 구한 소스. 나머지는 제가 만든건데 오류가 있으면 연락바랍니다. kiki@hikiki.net

실행시켜보시려면 아래소스를 모두 긁어서 test.html 파일로 만들어서 브라우져에서 열어보면 됩니다.

<script>
function containsJuminno(txt)
{
	/*
	// 줄바꿈문자제거
	var org = txt.replace(/[\n\r]/g, "");
	
	// 하이픈(-) 제거
	var org = org.replace(/([0-9])-([0-9])/g, "$1$2");
	*/
	
	// 숫자만 남기고 모두 삭제
	var org = txt.replace(/[^0-9]/g, "");
	
	return checkJumin(org);
}

function checkJumin(org)
{
	var v = org.replace(/^(.*)([0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9])(.*)$/, "$2-");
	log("13자리패턴 매치 : "+v);
	if(v==org){
		log("패턴못찾음");
		return false;
	}
	v = v.replace(/^(.*)-$/, "$1");
	
	var idx = org.indexOf(v);
	log("인덱스 : "+idx);
	if(idx<0){
		log("패턴못찾음");
		return false;
	}
	
	// 찾은 문자가 주민등록번호이면 return
	if(isJuminno(v)){
		log("주민번호맞음");
		return true;
	}
	else
		log("주민번호아님. 다음패턴찾기위해 recursive call");
		
	// 다음 패턴을 찾기위해 찾은 주민번호에서 마지막자리 지움
	org = org.substring(0, idx) + v.replace(/^(.*)[0-9]$/, "$1");
	log("다음패턴찾기위해마지막글자삭제후 = "+org);
	
	return checkJumin(org);
}




function checkIt()
{
	ta = document.getElementsByName("log")[0];
	ta.value = "";
	
	var rs = containsJuminno(document.getElementsByName("a")[0].value);
	log(rs);
}




function log(str)
{
	ta = document.getElementsByName("log")[0];
	ta.value = ta.value+"\n"+str;
}


function isJuminno(jumin)
{
	jumin1 = jumin.substring(0, 6);
	jumin2 = jumin.substring(6);
	
	check = false;
	total = 0;
	temp = new Array(13);
	
	for(i=1; i<=6; i++)
		temp[i] = jumin1.charAt(i-1);
	for(i=7; i<=13; i++)
		temp[i] = jumin2.charAt(i-7);
	
	for(i=1; i<=12; i++){
		k = i + 1;
		if(k >= 10)
		k = k % 10 + 2;
		total = total + temp[i] * k;
	}
	mm = temp[3] + temp[4];
	dd = temp[5] + temp[6];
	
	totalmod = total % 11;
	chd = 11 - totalmod;
	if(chd==temp[13] && mm<13 && dd<32 && (temp[7]==1 || temp[7]==2 || temp[7]==3 || temp[7]==4))
		check=true;
	return check;
}









</script>


<html>
<body>
<textarea name=a rows=5 cols=50>aa1234567890123123123adf
</textarea>
<input type=button onclick="checkIt()" value="XXXXXX">
<br>
<textarea name=log rows=50 cols=90></textarea>
</body>
</html>


Valid XHTML 1.0! Valid CSS! powered by MoniWiki
last modified 2008-08-27 17:32:32
Processing time 0.0065 sec