사업자등록번호는 10자리 숫자로 XXX-XX-XXXXX 형식이다. 정규표현식으로 형식 검증이 가능하다.
기본 패턴
^[0-9]{3}-[0-9]{2}-[0-9]{5}$ 이 패턴은 하이픈 포함 형식을 검사한다. 정규표현식 테스터에서 123-45-67890을 테스트해보자.
하이픈 없는 경우
^[0-9]{10}$ 이러면 하이픈 없이 10자리만 검사. 입력 형식에 따라 선택하면 된다.
진짜 검증
사업자등록번호는 검증 알고리즘이 있다. 정규표현식은 형식만 보니까, 실제 유효성은 국세청 API를 써야 한다. 테스터로 형식만 체크하고 API로 실제 검증하자.
에러 처리 고려하기
잘못된 정규표현식은 런타임 에러를 일으킬 수 있다. 동적으로 패턴을 만들 때는 try-catch로 감싸거나 미리 검증하자. 정규표현식 테스터에서 문법 오류를 미리 확인할 수 있다.
유니코드 처리
한글이나 이모지 같은 유니코드 문자를 처리할 때는 u 플래그가 필요할 수 있다. 다국어 지원이 필요하면 유니코드 문자 클래스를 활용하자.
보안 측면에서
사용자 입력으로 정규표현식을 만들면 ReDoS 공격에 취약할 수 있다. 신뢰할 수 없는 입력을 패턴으로 쓰지 말고, 꼭 필요하면 타임아웃을 설정하자. 테스터로 다양한 입력에 대한 동작을 확인하고 안전하게 사용하자.
복잡한 문자열 처리가 필요할 때 gimo.kr 정규표현식 테스터를 활용하면 패턴 작성과 검증이 훨씬 수월해진다. 실무에서 자주 쓰이는 패턴들을 익혀두면 생산성이 크게 올라간다.