본문 바로가기

Web Progreming

[ JavaScript ]사업자 등록번호 유효성검사

자바스크립트에서 사업자등록번호 체크하는 함수입니다.
사업자 등록번호는 000-00-00000 의 구조로 만들어져 있습니다.

[ 사업자 등록번호 자리수의 의미]
앞의 세 자리 수는 국세청과 세무서별 코드이며, 
가운데 두 자리 수는 개인과 법인을 구분하는 코드이다.
끝의 다섯 자리 수 중 앞에서부터 네 번째까지의 수는 과세사업자나 면세사업자 또는 법인사업자별로 등록 또는 지정일자를 일련번호로 나타낸 것이고, 
맨끝 자리 수는 전산시스템으로 오류를 검증하기 위해 부여되는 검증번호이다. 

[ 계산법 ]
1 1 0 8 1 4 1 2 7 
x x x x x x x x x 
1 3 7 1 3 7 1 3 5 
---------------
+ + + + + + + + +

즉, (1*1)+(1*3)+(0*7)+(8*1)+(1*3)+(4*7)+(1*1)+(2*3)+(7*5) = 85
그러면 85 이란 수가 나온다. 여기에 마지막에서 두번째 숫자인 7에 5를 곱하고 10으로
나누어 나온 값의 몫을 더한다.
 
(7 * 5) / 10 = 3.5
 
이 88 을 매직키인 10로 나누어 나머지만 취한다. 

88 / 10 = 몫: 8 <-- 버림 

나머지: 8 

마지막 단계로 매직키인 10에서 나머지 8을 빼면 2이란 수가 나오
는데, 이숫자가 사업자등록번호 마지막 자리의 숫자와 일치하면 대한민국 사업자이다. 

10 - 8 = 2 --> 정상적인 사업자등록번호임


[ 자바스크립트 소스 ]
function checkBizID(bizID)  //사업자등록번호 체크 
    // bizID는 숫자만 10자리로 해서 문자열로 넘긴다. 
    var checkID = new Array(1, 3, 7, 1, 3, 7, 1, 3, 5, 1); 
    var tmpBizID, i, chkSum=0, c2, remander; 
     bizID = bizID.replace(/-/gi,''); 

     for (i=0; i<=7; i++) chkSum += checkID[i] * bizID.charAt(i); 
     c2 = "0" + (checkID[8] * bizID.charAt(8)); 
     c2 = c2.substring(c2.length - 2, c2.length); 
     chkSum += Math.floor(c2.charAt(0)) + Math.floor(c2.charAt(1)); 
     remander = (10 - (chkSum % 10)) % 10 ; 

    if (Math.floor(bizID.charAt(9)) == remander) return true ; // OK! 
      return false; 

출처 :