Where The Streets Have No Name

주민번호 입력 및 유효성 체크( 숫자만 입력가능, - 자동추가 ) 본문

Developement/Web

주민번호 입력 및 유효성 체크( 숫자만 입력가능, - 자동추가 )

highheat 2006. 4. 5. 11:50

<SCRIPT LANGUAGE="JavaScript">
<!--
/* --- 숫자만 입력 가능 (onKeyDown 이벤트) --- */
function onlyNumberInput()
{
var code = window.event.keyCode;

 if ((code > 34 && code < 41) || (code > 47 && code < 58) || (code > 95 && code < 106) || code == 8 || code == 9 || code == 13 || code == 46)
{
 window.event.returnValue = true;
 return;
}
window.event.returnValue = false;
}

/* --- 숫자만 리턴 --- */
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;
}

/* --- 주민등록번호 형식 (onKeyUp 이벤트) --- */
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;
 }
}
}
//-->
</SCRIPT>

<input size="14" type="text" name="jumin" maxLength="14" onKeyDown="onlyNumberInput();" onKeyUp="juminFormat(this)">