본문 바로가기

Story/Javascript

사업자등록번호 체크

반응형

/*****
  * 사업자등록번호 체크
  * return : boolean
  * ex) 111-11-11111
  *****/
 function check_worknum(resno) {
  fmt = /^d{3}-d{2}-d{5}$/;
  if(!fmt.test(resno)) return false;
  // Check Sum 코드의 유효성 검사
  buf = new Array(10);
  for (i = 0; i < 3; i++) buf[i] = parseInt(resno.charAt(i));
  for (i = 3; i < 5; i++) buf[i] = parseInt(resno.charAt(i + 1));
  for (i = 5; i < 10; i++) buf[i] = parseInt(resno.charAt(i + 2));
  multipliers = [1,3,7,1,3,7,1,3,5,1];
  for (i = 0, sum = 0; i < 10; i++){
   if(i==0 || i==9){
    sum += (buf[i] * multipliers[i]);
   }else{
    sum += (buf[i] * multipliers[i]%10);
    if(i==8) sum += Math.floor(buf[i] * multipliers[i] / 10);
   }
  }
  if (sum % 10 != 0) return false;
  return true;
 }
 
 
 
=======================================================================================
위의 것은 다음것을 참고하여 약간 변형한것임
function chkWorkNumb(strNumb) {
    strNumb = strNumb.replace("-","");
    if (strNumb.length != 10) {
        alert("사업자등록번호가 잘못되었습니다.");
        return false;
    }
    sumMod = 0;
    sumMod += parseInt(strNumb.substring(0,1));
    sumMod += parseInt(strNumb.substring(1,2)) * 3 % 10;
    sumMod += parseInt(strNumb.substring(2,3)) * 7 % 10;
    sumMod += parseInt(strNumb.substring(3,4)) * 1 % 10;
    sumMod += parseInt(strNumb.substring(4,5)) * 3 % 10;
    sumMod += parseInt(strNumb.substring(5,6)) * 7 % 10;
    sumMod += parseInt(strNumb.substring(6,7)) * 1 % 10;
    sumMod += parseInt(strNumb.substring(7,8)) * 3 % 10;
    sumMod += Math.floor(parseInt(strNumb.substring(8,9)) * 5 / 10);
    sumMod += parseInt(strNumb.substring(8,9)) * 5 % 10;
    sumMod += parseInt(strNumb.substring(9,10));
    if (sumMod % 10 != 0) {
        alert("사업자등록번호가 잘못되었습니다.");
        return false;
    }
    return true;
}
반응형