티스토리 뷰
반응형
사업자 등록번호에는 아래와 같이 정해진 규칙이 있습니다.
출처: seoulcredit.co.kr/business_id
여기서 주의깊게 봐야할 것은 4. 검증번호(마지막 1자리) 입니다!! 마지막 1자리로 유효한 사업자 등록번호인지 확인할 수 있는 거죠.
검증 알고리즘을 볼까요?
마지막 자리수를 자외한 각 자리수에 1.3.7.1.3.7.1.3.5 곱한 후, 각각 더한 다음.
마지막에서두전째 숫자에 5를 곱하고 10으로 나누어 나온 값의 몫을 더합니다.
마지막에서두전째 숫자에 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(1, 3, 7, 1, 3, 7, 1, 3, 5);
var checkSum = 0;
for (var i = 0; i < multiply.length; ++i) {
checkSum += multiply[i] * valueMap[i];
}
checkSum += parseInt((multiply[8] * valueMap[8]) / 10, 10);
return Math.floor(valueMap[9]) === ((10 - (checkSum % 10)) % 10);
}
return false;
}
|
cs |
반응형
'Language > html,js,css' 카테고리의 다른 글
js css 버전 관리, js나 css 를 변경해도 브라우저에 반영안될 때, (2) | 2021.03.12 |
---|---|
CDATA 란 무엇일까 (0) | 2019.10.23 |
HTML 내 script 변경 시, 사용자가 캐시 지워야하는 불편함 없애는 방법 (0) | 2019.10.21 |
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
TAG
- 퇴사
- c#
- 런타임에러
- html꿀팁
- 프론트엔드
- boj
- 선언적트랜잭션 #noRollbackFor #@Transactional
- C# java 차이점
- 백준퇴사
- 프론트엔드개발자
- script버전
- html
- C++
- 개발중캐시삭제
- 캐시삭제
- 백준14501
- 백준
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
글 보관함