2011년 5월 24일 화요일

주민등록 번호 알고리즘 확인 스크립트

/* --- 숫자만 리턴 --- */
function onlyNum(val)
{
var num = val;
var tmp = "";

for (var i = 0; i < num.length; i ++)
{
 if (num.charAt(i) >= 0 && num.charAt(i) <= 9)
  tmp = tmp + num.charAt(i);
 else
  continue;
}
return tmp;
}



/* --- 주민등록번호 형식  --- */

function juminFormat(obj)
{
var str = onlyNum(obj.value);
var leng = str.length;

   switch(leng)
   {
 case  1 :
 case  2 :
 case  3 :
 case  4 :
 case  5 :
 case  6 : obj.value = str; break;
 case  7 :
 case  8 :
 case  9 :
 case 10 :
 case 11 :
 case 12 :
 case 13 : obj.value = str.substring(0, 6) + "-" + str.substring(6, 13);
     isSSN(str.substring(0, 6) + str.substring(6, 13))
     break;
}
}





function isSSN(ssn){
if( ssn.length == 13 ) {
 var A = ssn.charAt(0);
 var B   = ssn.charAt(1);
 var C   = ssn.charAt(2);
 var D   = ssn.charAt(3);
 var E   = ssn.charAt(4);
 var F   = ssn.charAt(5);
 var G   = ssn.charAt(6);
 var H   = ssn.charAt(7);
 var I   = ssn.charAt(8);
 var J   = ssn.charAt(9);
 var K   = ssn.charAt(10);
 var L   = ssn.charAt(11);
 var Osub   = ssn.charAt(12);

 var SUMM = A*2 + B*3 + C*4 + D*5+ E*6+ F*7+G*8+H*9+I*2+J*3+K*4+L*5;
 var N = SUMM % 11;
 var Modvalue = 11 - N;
 var LapointVal =  Modvalue % 10 ;

if ( Osub == LapointVal ) {
 alert("정상적인 주민번호 입니다.");
 return true;
} else {
 alert("올바른 주민번호를 입력하세요");
 return false;
}
 }
}

댓글 없음:

댓글 쓰기

블록체인 개요 및 오픈소스 동향

블록체인(block chain) 블록체인은 공공 거래장부이며 가상 화폐로 거래할때 발생할때 발생할 수 있는 해킹을 막는 기술. 분산 데이터베이스의 한 형태로, 지속적으로 성장하는 데이터 기록 리스트로서 분산 노드의 운영자에 의한 임의 조작이 불가...