사업자등록번호(10자리)
한국의 사업자등록번호(10자리)를 검증하기 위한 정규표현식(Regex)입니다.
상황에 따라 대시(-)가 포함된 경우와 포함되지 않은 경우로 나누어 사용할 수 있습니다.
1. 정규표현식 패턴
① 대시(-)가 없는 10자리 숫자만 검증할 때 : ^\d{10}$
② 대시(-)가 포함된 형태만 검증할 때 (xxx-xx-xxxxx) : ^\d{3}-\d{2}-\d{5}$
③ 대시(-)가 있든 없든 둘 다 허용할 때 : ^\d{3}-?\d{2}-?\d{5}$
2. 프로그래밍 언어별 사용 예시
① JavaScript
function validateBizNo(bizNo) {
// 1. 하이픈 제거 후 10자리 숫자 형식인지 정규식 검사
const cleanNo = bizNo.replace(/-/g, '');
const regex = /^\d{10}$/;
if (!regex.test(cleanNo)) return false;
// 2. 사업자등록번호 유효성 키 (체크섬 공식)
const checkKey = [1, 3, 7, 1, 3, 7, 1, 3, 5];
let sum = 0;
// 앞 9자리 계산
for (let i = 0; i < 9; i++) {
sum += parseInt(cleanNo[i]) * checkKey[i];
}
// 9번째 자리에 5를 곱한 값의 십의 자리 더하기
sum += Math.floor((parseInt(cleanNo[8]) * 5) / 10);
// 최종 체크섬 계산
const checkDigit = (10 - (sum % 10)) % 10;
// 입력된 마지막 자리 숫자와 일치하는지 비교
return checkDigit === parseInt(cleanNo[9]);
}
// 사용 예시
console.log(validateBizNo("123-45-67891")); // 형식 및 유효성 검사 결과 (true 또는 false)
② Jquery
$(function () {
$('#biz_num').on('input', function () {
var num = $(this).val().replace(/[^0-9]/g, '').substring(0, 10);
var result = num;
if (num.length >= 6) {
result = num.substring(0, 3) + '-' + num.substring(3, 5) + '-' + num.substring(5);
} else if (num.length >= 4) {
result = num.substring(0, 3) + '-' + num.substring(3);
}
$(this).val(result);
});
});