이메일 검사
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})/
<<정규식 확인 사이트>>
<<참고>>
- https://yozm.wishket.com/magazine/detail/1197/
- https://chrisjune-13837.medium.com/정규식-튜토리얼-예제를-통한-cheatsheet-번역-61c3099cdca8