자주 유효성체크를 하게 될 로직은 아니므로 별도로 포스팅을 합니다.
사업자 번호 유효성 체크하는 방법을 알아보겠습니다.
검증절차
ex) 사업자번호: 123-45-67891
1. 사업자 번호는 10자리이다.(숫자만 있다고 가정)
2. 인증키값으로 체크하려는 사업자번호와 연산을 한다.
(키값 = 1 3 7 1 3 7 1 3 5)
3. 사업자번호 앞 9자리 인증키 9자리의 각 자리수를 각각 곱하여 전부 더해줍니다.
S = (1 * 1) + (2 * 3) + (3 * 7) + (4 * 1) + (5 * 3) ... + (9 * 5)
4. 사업자번호 뒤에서 2번째자리와 인증키 마지막 값을 곱하고 10으로 나눈 후 위의 합과 추가로 더해줍니다.
S += 9 * 5 / 10(소수점은 제거한다.)
5. 합계를 10으로 나머지 연산을 합니다.
S % 10 = 9
6. 10에서 나머지 연산의 값을 빼줍니다.
10 - 9 = 1
7. 사업자번호 마지막자리와 마지막 처리한값이 같으면 사업자번호입니다.
1 = 1 사업자번호 O
구현 소스
function checkCorporateRegiNumber(number){
var numberMap = number.replace(/-/gi, '').split('').map(function (d){
return parseInt(d, 10);
});
if(numberMap.length == 10){
var keyArr = [1, 3, 7, 1, 3, 7, 1, 3, 5];
var chk = 0;
keyArr.forEach(function(d, i){
chk += d * numberMap[i];
});
chk += parseInt((keyArr[8] * numberMap[8])/ 10, 10);
console.log(chk);
return Math.floor(numberMap[9]) === ( (10 - (chk % 10) ) % 10);
}
return false;
}