/** * 사업자등록번호 유효성 검사 유틸리티 */ /** * 사업자등록번호 포맷 검증 (000-00-00000 형식) */ export function validateBusinessNumberFormat(value: string): boolean { if (!value || value.trim() === "") { return false; } // 하이픈 제거 const cleaned = value.replace(/-/g, ""); // 숫자 10자리인지 확인 if (!/^\d{10}$/.test(cleaned)) { return false; } return true; } /** * 사업자등록번호 종합 검증 (포맷만 검사) * 실제 국세청 검증은 백엔드에서 API 호출로 처리하는 것을 권장 */ export function validateBusinessNumber(value: string): { isValid: boolean; message: string; } { if (!value || value.trim() === "") { return { isValid: false, message: "사업자등록번호를 입력해주세요.", }; } if (!validateBusinessNumberFormat(value)) { return { isValid: false, message: "사업자등록번호는 10자리 숫자여야 합니다.", }; } // 포맷만 검증하고 통과 return { isValid: true, message: "", }; } /** * 사업자등록번호 포맷팅 (자동 하이픈 추가) */ export function formatBusinessNumber(value: string): string { if (!value) return ""; // 숫자만 추출 const cleaned = value.replace(/\D/g, ""); // 최대 10자리까지만 const limited = cleaned.slice(0, 10); // 하이픈 추가 (000-00-00000) if (limited.length <= 3) { return limited; } else if (limited.length <= 5) { return `${limited.slice(0, 3)}-${limited.slice(3)}`; } else { return `${limited.slice(0, 3)}-${limited.slice(3, 5)}-${limited.slice(5)}`; } }