[백업][가리사니] 사업자 등록번호 체크
javascript
이 문서는 가리사니 개발자 포럼에 올렸던 글의 백업 파일입니다. 오래된 문서가 많아 현재 상황과 맞지 않을 수 있습니다.
사업자 등록번호는 123-45-67890 의 10 자리 구조입니다.
123 : 국세청 / 세무서별 코드 45 : 개인 법인 구분코드 6789 : 과세/면세/법인 사업자 등록/지정일자 일련번호 0 : 검증번호
검증방법
예제번호 : 123-45-67891
- 하이픈 제거 1234567891 [사업자 10자리]
- 인증키 배열 - 고정된값이다. 137137135 [인증키 9자리]
- 사업자 앞 9자리와 인증키 앞 9자리를 각각 곱하여 모두 더합니다. 123456789 [사업자 앞9자리] 137137135 [인증키 9자리] 합계 = (1 * 2) + (2 * 3) + (3 * 7)….. + (9 * 5) = 165 합계 = 165
- 앞 9자리의 마지막 값을 다시 곱하고 10으로 나눕니다. ((9 * 5) / 10) = 4.5 소수점제거 = 4
- 합계에 바로위 값을 더해준다. 합계 = (합계165) + 4 합계 = 169
- 합계를 10으로 나누어 나머지를 구합니다. (169) % 10 = 9 값 = 9
- 10 - 값을한다. 10 - 값(9) = 1
- 마지막 자리수가 1이면 사업자등록번호입니다. 그럼으로 예제는 사업자 등록번호입니다.
// 사업자번호 체크
function checkBisNo(bisNo)
{
// 넘어온 값의 정수만 추츨하여 문자열의 배열로 만들고 10자리 숫자인지 확인합니다.
if ((bisNo = (bisNo+'').match(/\d{1}/g)).length != 10) {
return false;
}
// 합 / 체크키
var sum = 0;
var key = [1, 3, 7, 1, 3, 7, 1, 3, 5];
// 0 ~ 8 까지 9개의 숫자를 체크키와 곱하여 합에더합니다.
for (var i = 0 ; i < 9 ; i++) {
sum += (key[i] * Number(bisNo[i]));
}
// 각 8번배열의 값을 곱한 후 10으로 나누고 내림하여 기존 합에 더합니다.
// 다시 10의 나머지를 구한후 그 값을 10에서 빼면 이것이 검증번호 이며 기존 검증번호와 비교하면됩니다.
return (10 - ((sum + Math.floor(key[8] * Number(bisNo[8]) / 10)) % 10)) == Number(bisNo[9]);
}