[Validation]정규표현식

박민하·2022년 6월 14일
0

Today_I_Learned

목록 보기
5/7
post-thumbnail

정규표현식 테스트 사이트


✅ 정규표현식?

  정규표현식이란 문자열에서 특정 패턴을 만족하는 부분을 찾기 위해 사용된다. 모든 정규표현식을 외우기는 어려우니 아래 사이트를 참고하자.

mdn - 정규표현식
정규표현식 (Regex) 정리
점프 투 파이썬 - 정규표현식
정규표현식
정규식(microsoft)

✅ 종류

패턴내용예시
^문자열의 시작
$문자열의 종료
(?=.*or 조건문(?=.*[A-Za-z]) 대문자나 소문자 가능
|or
.임의의 문자
.x문자열이 x 로 끝남
x+x 문자가 한번 이상 반복. {1,}과 같다.
x?존재여부를 표현. x 문자가 있을 수도 없을 수도 있다. {0,1}과 같다.
x*반복여부를 표현. x 문자가 0번 또는 그 이상 반복. {0,}과 같다.
?=앞쪽 문자열을 기준으로 그룹 조건을 만족하는 지 비교
(x)그룹을 표현하며 x 를 그룹으로 처리함을 의미한다.
[xy]x 와 y 중에 하나
[^xy]x 및 y 를 제외한 문자
[x-z]두 문자의 범위. x ~ z 사이의 문자를 나타냄.
\ ^,*,?,+ 와 같은 문자를 그대로 처리x+y 와 x\+y 값이 같다
\b문자와 공백 사이
\d숫자. [0-9]와 달리 아랍 문자, 페르시아 문자 등 다양한 숫자를 포괄한다.
\D숫자가 아님
\s공백
\S공백이 아님
\w단어 영문자+숫자+_(밑줄) [0-9a-zA-Z_]
{n}정확히 n번 반복할때 일치한다.
{n,}n번 이상 반복할때 일치한다.
{n,m}n번에서 m번 안으로 반복할때 일치한다.

✅ 정규표현식 예시

1. 이메일 정규식

^[0-9a-zA-Z]([-_\.]?[0-9a-zA-Z])*@[0-9a-zA-Z]([-_\.]?[0-9a-zA-Z])*\.[a-zA-Z]{2,3}$
  • ^[0-9a-zA-Z] - 0~9 사이 숫자 또는 a-z A-Z 사이 알파벳으로 시작 
  • [-_\.]? - 중간에 -, _, . 같은 문자가 있을 수도 있고 없을 수도 있다.
  • *@ - @ 가 반드시 존재한다.
  • *\. - 반드시 . 이 존재한다.
  • [a-zA-Z]{2,3} - a-z A-Z 사이 알파벳2~3개가 존재
  • $ - 종료

2. 핸드폰번호 정규식

^01([0|1|6|7|8|9]?)-?([0-9]{3,4})-?([0-9]{4})$
  • ^01 - 시작을 숫자 01로 시작
  • [0|1|6|7|8|9]? - 0,1,6,7,8,9 중의 숫자가 있을 수도 없을 수도 있다
  • -? - 하이픈 하나가 있을 수도 없을 수도 있다
  • [0-9]{3,4} - 숫자 3~4개가 존재
  • [0-9]{4} - 숫자 4개가 존재
  • $ - 종료

3. 비밀번호 정규식

^(?=.*[A-Za-z])(?=.*\d)(?=.*[$@$!%*#?&])[A-Za-z\d$@$!%*#?&]{8,}$
  • ?=.*[A-Za-z] - 최소 하나의 문자
  • ?=.*\d - 최소 하나의 숫자
  • ?=.*[$@$!%*#?&] - 최소 하나의 특수문자
  • {8,} - 최소 8 자

4. 닉네임 정규식

^([A-Za-z0-9가-힣]{2,})+
  • [A-Za-z0-9가-힣]{2,} - 영어 대소문자, 숫자, 한글 2자 이상
profile
backend developer 🐌

0개의 댓글