자바스크립트에서 사업자등록번호 체크하는 함수입니다.
사업자 등록번호는 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;
}
출처 :
'Web Progreming' 카테고리의 다른 글
[ jQuery ] 퀵메뉴 슬라이딩 스크립트 (0) | 2011.11.28 |
---|---|
[ JavaScript ] 브라우저 체크 (0) | 2011.08.31 |
[ JavaScript ] KeyCode (0) | 2011.07.06 |
[ JavaScript ] 화면 가운데 새창 띄우기 (0) | 2011.07.06 |
[ jquery ] 관련 사이트 (0) | 2011.07.01 |