원본 본문으로 이동하기

사업자 등록번호 체크 방법

박용서 - 사업자 등록번호는 123-45-67890 의 10 자리 구조입니다. 123 : 국세청 / 세무서별 코드 45 : 개인 법인 구분코드 6789 : 과세/면세/법인 사업자 등록/지정일자 일련번호 0 : 검증번호 검증방법 예제번호 : 123-45-67891 1. 하이픈 제거 1234567891 [사업자 10자리] 2. 인증키 배열 - 고정된값이다. 137137135 [인증키 9자리] 3. 사업자 앞 9자리와 인증키 앞 9자리를 각각 곱하여 모두 더합니다. 123456789 [사업자 앞9자리] 137137135 [인증키 9자리] 합계 = (1 * 2) + (2 * 3) + (3 * 7)..... + (9 * 5) = 165 합계 = 165 4. 앞 9자리의 마지막 값을 다시 곱하고 10으로 나눕니다. ((9 * 5) / 10) = 4.5 소수점제거 = 4 5. 합계에 바로위 값을 더해준다. 합계 = (합계165) + 4 합계 = 169 6. 합계를 10으로 나누어 나머지를 구합니다. (169) % 10 = 9 값 = 9 7. 10 - 값을한다. 10 - 값(9) = 1 8. 마지막 자리수가 1이면 사업자등록번호입니다. 그럼으로 예제는 사업자 등록번호입니다. // 국내에 종속성을 가지고있기에 라온에는 직접 들어가지 않겠지만 나중에 확장용으로 들어갈 수 있습니다. (은글슬쩍 라이브러리 광고....) // https://dev.saro.me/raon/ // 사업자번호 체크 // 2015-04-24 전명 박용서 작성 function ckBisNo(bisNo) { // 넘어온 값의 정수만 추츨하여 문자열의 배열로 만들고 10자리 숫자인지 확인합니다. if ((bisNo = (bisNo+'').match(/\d{1}/g)).length != 10) { return false; } // 합 / 체크키 var sum = 0, 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]); } - 자바스크립트