유틸리티

정규표현식으로 급여 데이터 유효성 검사하기

급여 시스템에 입력되는 데이터를 검증할 때 정규표현식이 유용하다. 계좌번호 형식, 주민등록번호 패턴, 이메일 주소 등을 체크한다. 정규식 테스터로 패턴을 테스트하면서 실무에 적용해본다.

계좌번호 검증

한국 은행 계좌번호는 은행마다 형식이 다르다. 일반적으로 10~14자리 숫자다.

const accountRegex = /^d{10,14}$/; accountRegex.test("1234567890123"); // true

하이픈이 포함된 경우도 허용하려면 패턴을 수정한다. gimo.kr/regex-tester에서 패턴을 테스트해볼 수 있다.

주민등록번호 형식

주민등록번호는 YYMMDD-GXXXXXX 형식이다. 간단한 형식 검사는 정규식으로 하고, 유효성 검사는 체크섬 알고리즘으로 한다.

const ssnRegex = /^d{6}-[1-4]d{6}$/; ssnRegex.test("900101-1234567"); // true

주민번호는 수집 자체가 제한되니 꼭 필요한 경우만 처리한다.

이메일 검증

급여 명세서를 이메일로 발송할 때 주소 형식을 확인한다. 완벽한 이메일 정규식은 복잡하니 실용적인 수준으로 검사한다.

const emailRegex = /^[^s@]+@[^s@]+.[^s@]+$/;

금액 형식

금액 입력 시 쉼표나 원 기호가 포함될 수 있다. 이걸 숫자로 변환하기 전에 정규식으로 정제한다.

const amountStr = "5,000,000원"; const amount = parseInt(amountStr.replace(/[^d]/g, "")); // 5000000

정규식 테스터로 다양한 입력을 테스트해보면 예외 케이스를 발견할 수 있다.

전화번호

전화번호는 010-1234-5678, 01012345678, 02-123-4567 등 다양한 형식이 있다. 저장할 때는 숫자만 추출하고, 표시할 때 형식을 적용하는 게 좋다.

XSS 방지

사용자 입력에서 HTML 태그나 스크립트를 제거해서 XSS 공격을 방지한다. 정규식으로 간단히 처리할 수 있지만, 라이브러리 사용이 더 안전하다.

마치며

정규표현식은 데이터 검증의 기본이다. 패턴 테스트가 필요할 때 온라인 정규식 테스터를 활용해보자.