실전 데이터 검증용 정규식 패턴 컬렉션

수치 데이터 검증

정수 및 실수 형식의 입력값을 검증하기 위한 정규식 패턴입니다.

  • 전체 숫자
    ^[0-9]+$
  • 자리수 제한
    ^\d{n}$      # 정확히 n자리
    ^\d{n,}$     # n자리 이상
    ^\d{m,n}$    # m부터 n자리까지
  • 0 및 0이 아닌 시작값
    ^(?:0|[1-9]\d*)$                    # 0 또는 0이 아닌 정수
    ^(?:[1-9]\d*)+(?:\.\d{1,2})?$       # 최대 소수점 2자리까지 허용하는 0이 아닌 수
  • 부호 포함 정수 및 실수
    ^[+-]?\d+(?:\.\d+)?$
  • 소수점 고정 검증
    ^\d+(?:\.\d{2})?$      # 정확히 소수점 2자리 양수
    ^-?\d+(?:\.\d{1,2})?$  # 소수점 1~2자리 양수/음수
    ^\d+(?:\.\d{1,3})?$      # 소수점 1~3자리 양수
  • 0이 아닌 정수
    ^[1-9]\d*$               # 양의 정수
    ^-[1-9]\d*$              # 음의 정수
  • 부호 방향 제한
    ^(?:-[1-9]\d*|0)$      # 음수 및 0
    ^\d+$                    # 양수 및 0
  • 부동소수점 형식
    ^-?(?:\d+)(?:\.\d+)?$               # 일반 부동소수점
    ^(?:[1-9]\d*\.\d*|0\.\d*[1-9]\d*|0?\.0+|0)$ # 비음성 부동소수점
    ^-(?:[1-9]\d*\.\d*|0\.\d*[1-9]\d*)$       # 음수 부동소수점

문자열 검증

한자, 영문, 특수 기호 및 길이 제한을 위한 패턴입니다.

  • 한자 전용
    ^[\u4e00-\u9fa5]*$
  • 영문 및 숫자 혼합
    ^[A-Za-z0-9]+$
    ^[A-Za-z0-9]{4,40}$
  • 길이 제한 (3~20자)
    ^.{3,20}$
  • 영문자 집합
    ^[A-Za-z]+$          # 대소문자 혼합
    ^[A-Z]+$             # 대문자 전용
    ^[a-z]+$             # 소문자 전용
    ^[A-Za-z0-9]+$       # 영문+숫자
    ^[A-Za-z0-9_]{3,20}$ # 영문+숫자+밑줄
  • 한자/영문/숫자/밑줄 허용
    ^[\u4E00-\u9FA5A-Za-z0-9_]+$
  • 특수 기호 제외
    ^[^%&',;=?$\x22]+$
  • 특정 문자 금지 (~)
    ^[^~\x22]+$

특수 데이터 형식 검증

이메일, URL, 연락처, 식별자 등 시스템에서 빈번하게 요구되는 형식입니다.

  • 이메일 주소
    ^\w+(?:[-+.]\w+)*@\w+(?:[-.]\w+)*\.\w+(?:[-.]\w+)*$
  • 도메인 이름
    ^(?:[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?\.)+[a-zA-Z]{2,}$
  • URL 형식
    ^(?:https?|ftp):\/\/[^\s/$.?#].[^\s]*$
  • 모바일 번호
    ^(?:13\d|14[57]|15[0-35-9]|18[0-35-9]|17[0-35-9])\d{8}$
  • 유선 전화번호
    ^(?:0\d{2,3}-)?\d{7,8}$
  • 주민등록번호
    ^\d{6}-[1-4]\d{6}$
  • 계정명 (5~16자)
    ^[A-Za-z][A-Za-z0-9_]{4,15}$
  • 기본 비밀번호
    ^[A-Za-z]\w{5,17}$
  • 강력 비밀번호
    ^(?=.*\d)(?=.*[a-z])(?=.*[A-Z])[A-Za-z\d]{8,10}$
  • 날짜 형식
    ^\d{4}-(?:0[1-9]|1[0-2])-(?:0[1-9]|[12]\d|3[01])$
  • 월 단위
    ^(?:0?[1-9]|1[0-2])$
  • 일 단위
    ^(?:0?[1-9]|[12]\d|3[01])$
  • 통화 형식
    ^(?!0\d)\d+(?:\.\d{1,2})?$          # 선행 0 금지, 소수점 최대 2자리
    ^\d{1,3}(?:,\d{3})*(?:\.\d{1,2})?$ # 천 단위 콤마 지원
  • XML 파일 확장자
    ^[a-zA-Z\-]+\.xml$
  • 전각 문자(한자 포함)
    [\u4e00-\u9fa5]
  • 이중 바이트 문자
    [^\x00-\xff]
  • 공백 줄 제거
    \n\s*\r
  • HTML 태그 매칭
    <[a-zA-Z][^>]*\>|<\/[a-zA-Z]+\>
  • 양 끝 공백 제거
    ^\s+|\s+$
  • 우편번호
    ^[1-9]\d{5}$
  • IPv4 주소
    ^(?:(?:25[0-5]|2[0-4]\d|1\d{2}|[1-9]?\d)\.){3}(?:25[0-5]|2[0-4]\d|1\d{2}|[1-9]?\d)$

태그: Regex data-validation pattern-matching text-processing Backend-Development

8월 5일 01:01에 게시됨