티스토리 뷰

반응형

사업자 등록번호에는 아래와 같이 정해진 규칙이 있습니다.

출처: seoulcredit.co.kr/business_id

 

여기서 주의깊게 봐야할 것은 4. 검증번호(마지막 1자리) 입니다!! 마지막 1자리로 유효한 사업자 등록번호인지 확인할 수 있는 거죠.
 
검증 알고리즘을 볼까요?
마지막 자리수를 자외한 각 자리수에 1.3.7.1.3.7.1.3.5 곱한 후, 각각 더한 다음.
마지막에서두전째 숫자에 5를 곱하고 10으로 나누어 나온 값의 몫을 더합니다.
그리고나서 10에서 아까 더한 수에 10으로 나눈 나머지를 뺍니다. 
이 숫자가 사업자등록번호의 마지막 자리의 수와 일치하면 검증된 사업자번호입니다.

 

예를 들어, 110-81-41272 이 사업자 등록번호인지 확인해보죠

사업자 등록번호 마지막자리수만 제외하고, 각각의 자리수마다 다음과 같은 수를 곱하여 전체를 더합니다

 

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

 

그리고나서 85+3.5= 88에 10로 나누어 나머지만 취한다. 

 

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

 

나머지: 8

 

마지막 단계로 10에서 나머지 8을 빼면 2이란 수가 나오는데, 이숫자가 사업자등록번호 마지막 자리의 숫자와 일치하면 정상적인 사업자 등록번호입니다.

10 - 8 = 2 (마지막자리수와 일치함)

참고블로그: https://blog.naver.com/hopegiver/140014039330

 

예를 들어보니깐 참 쉽쥬?? 자바스크립트로 구현해볼까요?
제가 맡은 시스템에서는 사용자가 form을 submit 하기 직전에 유효성을 체크하여 true면 submit 하고 false면 submit이 안되도록 구현하였습니다. 이 때 유효성 검사에 사업자등록번호 input 태그 value을 아래 function에 인자로 전달하여 체크할수 있도록 하였습니다.
(유효성 검사를 사업자등록번호외에 다른 요소들도 해야하니깐요..) 

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
function fn_ValidationCheck(value) {
    var valueMap = value.replace(/-/gi, '').split('').map(function (item) {
        return parseInt(item, 10);
    });
 
    if (valueMap.length === 10) {
        var multiply = new Array(137137135);
        var checkSum = 0;
 
        for (var i = 0; i < multiply.length++i) {
            checkSum += multiply[i] * valueMap[i];
        }
 
        checkSum += parseInt((multiply[8* valueMap[8]) / 1010);
        return Math.floor(valueMap[9]) === ((10 - (checkSum % 10)) % 10);
    }
 
    return false;
}
cs

 

반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/12   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31
글 보관함