웹마짱구's 블로그

주민번호체크

참고/JavaScript : 2006/12/26 14:56


function juminCheck(juminno)
{
 var boolCheck = true;
 var pattern = /(^[0-9]{13}$)/;
 if (!pattern.test(juminno)) boolCheck = false;
 else
 {
  var sum_1 = 0;
  var sum_2 = 0;
  var at=0;

  sum_1 = (juminno.charAt(0)*2)+
  (juminno.charAt(1)*3)+
  (juminno.charAt(2)*4)+
  (juminno.charAt(3)*5)+
  (juminno.charAt(4)*6)+
  (juminno.charAt(5)*7)+
  (juminno.charAt(6)*8)+
  (juminno.charAt(7)*9)+
  (juminno.charAt(8)*2)+
  (juminno.charAt(9)*3)+
  (juminno.charAt(10)*4)+
  (juminno.charAt(11)*5);

  sum_2 = sum_1 % 11;

  if (sum_2 == 0) at = 10;
  else
  {
   if (sum_2 == 1) at = 11;
   else at = sum_2;
  }

  att = 11 - at;
  // 1800 년대에 태어나신 분들은 남자, 여자의 구분이 9, 0 이라는
  // 얘기를 들은적이 있는데 그렇다면 아래의 구문은 오류이다.
  // 하지만... 100살넘은 분들이 주민등록번호를 과연 입력해볼까?

  if (juminno.charAt(12) != att || juminno.substr(2,2) < '01' || juminno.substr(2,2) > '12' || juminno.substr(4,2) < '01' || juminno.substr(4,2) > '31' || juminno.charAt(6) > 4) boolCheck = false;
 }

 return boolCheck;
}

================================================================================

function juminCheck(j1, j2)
{
 var chk=0;
 var yy=j1.substring(0,2);
 var mm=j1.substring(2,4);
 var dd=j1.substring(4,6);
 var sex=j2.substring(0,1);

 if((j1.length!=6)||(yy<25||mm<1||mm>12||dd<1))
 {
  return false;
 }

 if((sex!=1&&sex!=2)||(j2.length!=7))
 {
  return false;
 }

 for(var i=0;i<=5;i++)
 {
  chk=chk+((i%8+2)*parseInt(j1.substring(i,i+1)));
 }

 for(var i=6;i<=11;i++)
 {
  chk=chk+((i%8+2)*parseInt(j2.substring(i-6,i-5)));
 }

 chk=11-(chk %11);
 chk=chk%10;

 if(chk!=j2.substring(6,7))
 {
  return false;
 }
 return true;
}

=================================================================

function jumin_chk(j1, j2)
{
var chk = 0,i;
for(i = 0;i <= 5;i++)
 chk = chk + ((i % 8 + 2) * parseInt(j1.substring(i,i +1 )));
for(i = 6;i <= 11;i++)
 chk = chk + ((i % 8 + 2) * parseInt(j2.substring(i - 6,i - 5)));
chk = 11 - (chk % 11);
chk = chk % 10;
if(chk == j2.substring(6,7))
 return true;
else
 return false;
}

==========================================================


function Q_is_valid_SSN_Kr(strng) {
re = /^[0-9]{6}-?[0-9]{7}$/;
if (!re.test(strng)) return false;
strng_new = strng.replace("-","");
var year = parseInt(strng_new.substr(0,2),10);
var month = parseInt(strng_new.substr(2,2),10);
var day = parseInt(strng_new.substr(4,2),10);
var gender = parseInt(strng_new.charAt(6) ,10);
if ( month<1 || month>12 || gender<1 || gender>4 ) return false;

var arrayOfLasts = new Array(31,28,31,30,31,30,31,31,30,31,30,31);
if(month==2) {
year += (gender<3 ? 1900 : 2000);
if(Q_is_leap_year(year)) arrayOfLasts[1] = 29;
}
if(day<1 || day>arrayOfLasts[month-1]) return false;

var tmp = 0;
for(var n=0; n<12; n++) tmp += (n%8+2) * parseInt(strng_new.charAt(n),10);
tmp = (11-(tmp%11))%10;
if (tmp != strng_new.charAt(12)) return false;
return true;
}

top

참고/JavaScript : 2006/12/26 14:56 Trackback. : Comment. : view 1352

Trackback Address :: http://jjangu.pe.kr/blog/trackback/6

Write a comment.




: 1 : ... 535 : 536 : 537 : 538 : 539 : 540 : 541 : 542 : 543 :