본문 바로가기

[공부용]참고 사이트 모음/[자바스크립트]

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

출처 hooeni.tistory.com/233

2011. 8. 16. 17:12Web Progreming

자바스크립트에서 사업자등록번호 체크하는 함수입니다.

사업자 등록번호는 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; 

 

출처 : 

 http://moogi.tistory.com/30

 http://blog.naver.com/hopegiver?Redirect=Log&logNo=140014039330
 
http://blog.naver.com/endstar7?Redirect=Log&logNo=100124069535 

[출처] 사업자등록번호 유효성 검사|작성자 Min