카테고리 없음

정규식으로 로그인 유효성 체크하기

2023. 3. 5. 18:56

이메일 검사

1. @앞에 영어 대소문자가 필수로 들어가야함
2. @앞에 대소문자+숫자
  또는 대소문자+특수문자(-_.)
  또는 대소문자+숫자+특수문자(-_.) 가능함 (순서상관X)
3. @뒤에는 영어 소문자가 필수로 들어가야함
4. @뒤에는 소문자+ 숫자
  또는 소문자+특수문자(-_.)
  소문자+숫자+특수문자(-_.) 가능함 (순서상관X)
5. 마지막은 .com으로 끝나야함

 

- 특수문자 앞에는 \ 붙여줘야 함 

 

- * : 0개~여러개 (있거나 없거나) / + : 1개~여러개 (무조건 한번은 존재) / ? : 0개 또는 1개 (반복 불가)

 


 

-> 방법1)

(?:[0-9\-\_\.]*[A-Za-z]+[0-9\-\_\.]*)+@(?:[0-9\-\_\.]*[a-z]+[0-9\-\_\.]*)+(?:\.com)$

* : 0개~여러개 (있거나 없거나) / + : 1개~여러개 (무조건 한번은 존재) / ? : 0개 또는 1개 (반복 불가)

-> 방법2) 숫자는 \d로 표현할 수 있다(숫자 하나)

(?:[\d\-\_\.]*[A-Za-z]+[\d\-\_\.]*)+@(?:[\d\-\_\.]*[a-z]+[\d\-\_\.]*)+(?:\.com)$

 

-> 방법3) 전방탐색(Lookaround) 사용

(?=.*[A-Za-z])[A-Za-z\d\-\_\.]+@(?=.*[a-z])[a-z\d\-\_\.]+(?:\.com)$

 

 

 


비밀번호 검사

1. 길이는 8~12자
2. 대소문자+숫자+특수문자가(!@~) 모두 하나 이상 들어가야 함

 

- {2} 앞의 문자(또는 그룹)가 2번 반복

   {2,} 2번 이상 반복

   {2,4} 2번 이상 8번 이하 반복

 

- ^시작조건 $끝조건 함께 써주지 않으면 부분검사 될수있음

 

12글자 넘고 불가능 특수문자도 있음

 

 

 

 

 

 

가능한 부분만 존재하면 통과시킴

 

 

 

 

 

- 전방탐색(Lookaround)  (?=a) -> a로 시작하는것 찾기

(?=.*필수로들어가야할것) 체크할범위 -> 범위 안에 필수로들어가야할것이 한번 이상 존재하는지 확인 가능

 

- .는 모든 문자 의미(문자 하나)


-> 방법1)

^(?=.*[0-9])(?=.*[a-zA-Z])(?=.*[!@~])[\da-zA-Z!@~]{8,12}$

 

-> 방법2) \d적용

^(?=.*\d)(?=.*[a-zA-Z])(?=.*[!@~])[\da-zA-Z!@~]{8,12}$

 

-> 방법 2-1) 필수 요소 외에도 모든 문자가 다 사용 가능하다면

^(?=.*\d(?=.*[a-zA-Z])(?=.*[!@~]).{8,12}$

 


자주 활용되는 정규식 모음

  • 숫자만 허용: /^[0-9]*$/
  • 영문자만 허용: /^[a-zA-Z]*$/
  • 한글만 허용: /^[가-힣]*$/
  • 영어 & 숫자만 허용: /^[a-zA-Z0-9]*$/
  • 휴대폰 : /^01(0|1|[6-9])-\d{3,4}-\d{4}$/
  • 일반전화 : /^\d{2,3}-\d{3,4}-\d{4}$/
  • 주민등록번호 : /\d{6} \- [1-4]\d{6}/
  • IP 주소 : /([0-9]{1,3}) \. ([0-9]{1,3}) \. ([0-9]{1,3}) \. ([0-9]{1,3})/

 

 

 

<<정규식 확인 사이트>>

 

<<참고>>