정규표현식에 대한 기초적인 설명과 Node.js에서 적용하는 코드이다.
표현식 | 설명 |
^ | 문자열의 시작 |
$ | 문자열의 종료 |
. | 임의의 한 문자 (문자의 종류 가리지 않음) 단, \ 는 넣을 수 없음 |
* | 앞 문자가 없을 수도 무한정 많을 수도 있음 |
+ | 앞 문자가 하나 이상 |
? | 앞 문자가 없거나 하나있음 |
[] | 문자의 집합이나 범위를 나타내며 두 문자 사이는 - 기호로 범위를 나타낸다. []내에서 ^가 선행하여 존재하면 not 을 나타낸다. |
{} | 횟수 또는 범위를 나타낸다. |
() | 소괄호 안의 문자를 하나의 문자로 인식 |
| | 패턴 안에서 or 연산을 수행할 때 사용 |
\s | 공백 문자 |
\S | 공백 문자가 아닌 나머지 문자 |
\w | 알파벳이나 숫자 |
\W | 알파벳이나 숫자를 제외한 문자 |
\d | 숫자 [0-9]와 동일 |
\D | 숫자를 제외한 모든 문자 |
\ | 정규표현식 역슬래시(\)는 확장 문자 역슬래시 다음에 일반 문자가 오면 특수문자로 취급하고 역슬래시 다음에 특수문자가 오면 그 문자 자체를 의미 |
(?i) | 앞 부분에 (?i) 라는 옵션을 넣어주면 대소문자를 구분하지 않음 |
// 이메일
const regexEmail = /^[0-9a-zA-Z]([-_.]?[0-9a-zA-Z])*@[0-9a-zA-Z]([-_.]?[0-9a-zA-Z])*.[a-zA-Z]{2,3}$/i;
// 비밀번호
const regexPwd1 = /^(?=.*\d)(?=.*[a-zA-Z])[0-9a-zA-Z]{8,10}$/; // 8 ~ 10자 영문, 숫자 조합
const regexPwd2 = /^(?=.*\d)(?=.*[a-zA-Z])[0-9a-zA-Z]{6,20}$/; // 6 ~ 20자 영문, 숫자 조합
const regexPwd3 = /^(?=.*[A-Za-z])(?=.*\d)[A-Za-z\d]{8,}$/; // 최소 8자, 최소 하나의 문자 및 하나의 숫자
const regexPwd4 = /^(?=.*[A-Za-z])(?=.*\d)(?=.*[$@$!%*#?&])[A-Za-z\d$@$!%*#?&]{8,}$/; // 최소 8자, 최소 하나의 문자, 하나의 숫자 및 하나의 특수 문자
const regexPwd5 = /^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)[a-zA-Z\d]{8,}$/; // 최소 8자, 대문자 하나 이상, 소문자 하나 및 숫자 하나
const regexPwd6 = /^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)(?=.*[$@$!%*?&])[A-Za-z\d$@$!%*?&]{8,}/; // 최소 8자, 대문자 하나 이상, 소문자 하나 및 숫자 하나
const regexPwd7 = /^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)[a-zA-Z\d]{8,}$/; // 최소 8자, 대문자 하나 이상, 소문자 하나, 숫자 하나 및 특수 문자 하나 이상
const regexPwd8 = /^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)(?=.*[$@$!%*?&])[A-Za-z\d$@$!%*?&]{8,10}$/; // 최소 8자 및 최대 10자, 대문자 하나 이상, 소문자 하나, 숫자 하나 및 특수 문자 하나 이상
// 날짜, 0000-00-00
const regexDay = /^(19[0-9][0-9]|20\d{2})-(0[0-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])$/;
// 전화번호, 000-0000-0000
const regexPhoneNum = !/^[0-9]{3}-[0-9]{3,4}-[0-9]{4}/;
// 전화번호 체크
const regexPhoneNumCheck = /^01(?:0|1|[6-9])-(?:\d{3}|\d{4})-\d{4}$/;
// 이름은 한글,영문만 가능하며 2~10자리 가능
const regexName = /^([a-zA-Zㄱ-ㅎ|ㅏ-ㅣ|가-힣]).{1,10}$/;
// 닉네임은 한글,영문, 숫자만 가능하며 2~10자리 가능
const regexNickName = /^([a-zA-Z0-9ㄱ-ㅎ|ㅏ-ㅣ|가-힣]).{1,10}$/;
// 공백 또는 특수문자 체크 (존재하는지 확인)
const regexSpc = /[~!@#$%^&*()_+|<>?:{}]/gi;
// URL
const regexUrl = /(http|https):\/\/(\w+:{0,1}\w*@)?(\S+)(:[0-9]+)?(\/|\/([\w#!:.?+=&%@!\-\/]))?/;
// 한자리의 영어 대문자
const regexText = /[a-zA-Z]/;
// 성별
const regexGender = /(W|M)/;
// 숫자 (0~9까지의 20자리)
const regexNumber = /^([0-9]).{0,20}$/;
// 위도
const regexLatitude = /^-?([1-8]?[1-9]|[1-9]0)\.{1}\d{1,15}/;
// 경도
const regexLongitude = /^-?(([-+]?)([\d]{1,3})((\.)(\d+))?)/;
'👩💻 Programming > Backend' 카테고리의 다른 글
[Flask] nohup bacground 실행하기 (0) | 2021.10.02 |
---|---|
[Flask] Ubuntu+Nginx+SSL+Gunicorn+Flask 설정하기 (0) | 2021.09.05 |
[Node.js] 오답노트 (0) | 2021.07.22 |
[Flask] SecretKey 비밀키 설정 (0) | 2021.07.21 |
Mysql Workbench ERD 다이어그램 생성 방법 (0) | 2021.07.14 |