사업자 등록번호 유효성 검사
사업자 등록번호에는 패턴이 있고, 이 패턴에 따라 유효한 사업자 등록번호인지 검사할 수 있다.
예로, 111-11-11119 이라는 10자리 임의의 번호를 검사해보자.
(이때 사업자번호 마지막 번호는 제일 마지막에 처리하므로, 9를 빼고 연산해보자.)
1. [1, 1, 1, 1, 1, 1, 1, 1, 1] 로 각 숫자를 나누어 배열에 담는다.
2. [1, 3, 7, 1, 3, 7, 1, 3, 5] 인증키 9자리 각 자릿수를 곱한 뒤, 전부 더해준다.
Sum = (1*1) + (1*3) + (1*7) + (1*1) + (1*3) + (1*7) + (1*1) + (1*3) + (1*5)
Sum = 31
3. 조회번호, 인증키 배열 마지막 숫자를 곱하여 10으로 나누어 소수점을 제거하고, 위에 추가로 더해준다.
Sum += 1*5 / 10
Sum = 31
4. Sum 을 10으로 나누어 나머지 값을 구한다.
Sum/10 = 1
5. 위에서 구한 나머지 값을 10 에서 뺀 값을 구한다.
10 - 1 = 9
6. 조회하고자 하는 마지막 사업자 번호와 5번에서 구한 값이 일치하는지 비교한다.
9 = 9
(111-11-11119 의 마지막 번호) = (5에서 구한 값)
코드
const regsplitNum = insertNum.replace(/-/gi, '').split('').map(function(item) {
return parseInt(item, 10);
});
if (regsplitNum.length === 10) {
const regkey = [1, 3, 7, 1, 3, 7, 1, 3, 5];
let regNumSum = 0;
for (var i = 0; i < regkey.length; i++) {
regNumSum += regkey[i] * regsplitNum[i];
}
regNumSum += parseInt((regkey[8] * regsplitNum[8]) / 10, 10);
const regCheck = (Math.floor(regsplitNum[9])) === ((10 - (regNumSum % 10) ) % 10);
return regCheck;
}
반응형
'🔥 Javascript > 💙 React' 카테고리의 다른 글
React ) 폰트 깨짐 문제 - 크롬 등의 브라우저에서 글씨가 흐려요... (0) | 2022.02.07 |
---|---|
React 무료 아이콘 라이브러리 추천 (0) | 2022.01.02 |
React-Native Shadow - 그림자 스타일 미리보기 (0) | 2022.01.02 |
리액트 map 함수 - 컴포넌트 반복 (0) | 2021.12.31 |
React useState list에 push 하기 - state에 리스트를 쓰고 싶어요 (0) | 2021.12.31 |