웹 개발을 하다 보면 입력값 검증은 필수입니다.
특히 회원가입, 로그인, 폼 입력 등에서 정규식(Regex)을 활용하면 간단하게 유효성 체크를 처리할 수 있습니다.
이번 글에서는 기본 사용법과 실무에서 바로 사용할 수 있는 정규식 패턴을 정리했습니다.
기본 사용법
// reg 값을 원하는 검증 정규식으로 넣어서 사용
const reg = /^[A-Za-z0-9]+$/;
// 검증할 값
const value = "user123";
if (reg.test(value)) {
console.log("유효한 값입니다.");
} else {
console.log("형식이 올바르지 않습니다.");
}
1. 아이디 검증 (영문 + 숫자)
/^[A-Za-z0-9]+$/
- 영문 + 숫자만 허용
- 공백 및 특수문자 불가
2. 비밀번호 검증
/^(?=.*\d)(?=.*[~`!@#$%^&*()\-+=])(?=.*[A-Za-z].*[A-Za-z]).{8,50}$/
조건:
- 숫자 1개 이상
- 특수문자 1개 이상
- 영문 2개 이상
- 8~50자
3. 이메일 형식 검증
/^[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,}$/
- 대부분의 이메일 형식 대응
- 실무에서 가장 많이 사용하는 패턴
4. 같은 문자 반복 제한
/(.)\1{3}/
- 같은 문자 4번 이상 반복 체크
- 비밀번호 보안 강화에 사용
5. 전화번호 검증
/^\d{3}-\d{3,4}-\d{4}$/
예: 010-1234-5678, 010-123-4567
6. URL 검증
/^(https?|ftp):\/\/[^\s/$.?#].[^\s]*$/
- http / https / ftp 지원
- 기본적인 URL 형식 체크
7. 도메인 검증
/^((https?:\/\/)?)([0-9a-zA-Z\-]+\.)+[a-zA-Z]{2,}(\:[0-9]+)?(\/\S*)?$/
- http/https 포함 여부 선택 가능
- 포트 및 경로 포함 가능
8. 숫자만 입력
/^[0-9]+$/
9. 한글만 입력
/^[가-힣]+$/
마무리
정규식은 강력하지만, 과하게 복잡하게 만들면 유지보수가 어려워집니다.
실무에서는 “완벽한 정규식”보다 “적당히 안전한 정규식”이 더 중요합니다.
필요한 만큼만 검증하고, 나머지는 서버에서 한 번 더 체크하는 구조를 추천합니다.