정규표현식 (Regular Expression)
1. 특정 문자의 매칭 결과를 판단하기 위한 방식이다.
2. 생성방법
1) 정규식 패턴이 변하지 않는 경우(/정규식/)
var regExp = /ab+/;
2) 정규식 패턴이 변하는 경우(new RegExp('정규식'))
var regExp = new RegExp('ab+');
3. Meta 문자
1) var regExp = /x/; x
2) var regExp = /x|y/; x 또는 y
3) var regExp = /.x/; .(임의의 한 문자) x로 끝남
4) var regExp = /^x/; x 로 시작
5) var regExp = /x$/; x 로 끝
6) var regExp = /x*/ x 를 0번 이상 반복
7) var regExp = /x+/; x 를 1번 이상 반복
8) var regExp = /(xy)/; xy 그룹화
9) var regExp = /x{n}/; x를 n번 반복
10) var regExp = /x{n,}/; x를 n번 이상 반복
11) var regExp = /x{n,m}/; x를 n번 이상 m번 이하 반복
4. 주요 Flag
1) Flag : 정규식 뒤에 덧붙이는 명령
2) g : global, 문자열 전체에서 모든 패턴을 찾는다.
3) i : ignore case, 대소문자의 구분 없이 패턴을 찾는다.
4) m : multiple line, 문자열의 줄이 바뀌어도 패턴을 찾는다.
5) 예시
var regExp = /a+/g;
var regExp = /a+/i;
var regExp = /a+/m;
var regExp = /a+/gi;
5. 문자클래스
1) var regExp = /[xy]/; x, y 중 하나
2) var regExp = /[^xy]/; x, y 를 제외한 문자 중 하나
3) var regExp = /^[xy]/; x, y 중 하나로 시작
4) var regExp = /[a-z]/; a ~ z 중 하나 (소문자)
5) var regExp = /[A-Z]/; A ~ Z 중 하나 (대문자)
6) var regExp = /[0-9]/; 0 ~ 9 중 하나 (숫자)
7) var regExp = /[가-힣]/; 0 ~ 9 중 하나 (한글)
8) var regExp = /[a-zA-Z]/; a ~ z 또는 A ~ Z 중 하나 (영문)
9) var regExp = /\s/; space 공백문자
10) var regExp = /\S/; not space 공백문자 아님
11) var regExp = /\d/; digit 0 ~ 9 숫자
12) var regExp = /\D/; not digit 0 ~ 9 숫자 아님
13) var regExp = /\w/; word 대문자, 소문자, 밑줄(_)
14) var regExp = /\W/; not word 대문자, 소문자, 밑줄(_) 아님
주요 정규식
1. 아이디 중복 체크
1) 첫 글자는 소문자이다.
2) 5 ~ 20 사이의 소문자나 숫자를 사용한다. []가 2번들어갔으므로 1번 추가해서 5~20 {4,19}
var regExpID = /^[a-z][a-z0-9]{4,19}$/; // 첫 글자는 소문자이다.(^[a-z])
2. 비밀번호 체크
1) 8 ~ 20 사이의 대문자, 소문자, 숫자, 특수문자(~!@#$%^&*)를 사용한다. 여기는 최종 돌아가는 []가 1번 그래서 그대로 8~20 {8,20}
2) 각각 1개 이상 포함해야 한다.
var regExpPW = /^(?=.*[A-Z])(?=.*[a-z])(?=.*[0-9])(?=.*[~!@#$%^&*])[A-Za-z0-9~!@#$%^&*]{8,20}$/;
3) 8자 이상. 대문자, 소문자, 특수문자, 숫자 사용. 소문자, 숫자는 필수.
var regExpPW = /^(?=.*[a-zA-Z~!@#$%^&*()_+|<>?:{}])(?=.*[0-9]).{8,}$/;
3. 이메일
var regExpEMAIL = /^[a-z][a-z0-9\-\_]+@[A-Za-z0-9]{3,}(\.[A-Za-z]{2,6}){1,2}$/;
4. 핸드폰
var regExpPHONE = /^01[0|1|6|9]-[0-9]{3,4}-[0-9]{4}$/;
'Programming diary' 카테고리의 다른 글
13. September 27, 2020 (0) | 2020.09.28 |
---|---|
12. September 13, 2020 (0) | 2020.09.13 |
10. September 6, 2020 (0) | 2020.09.06 |
9. September 3, 2020 (0) | 2020.09.03 |
8. September 1, 2020 (0) | 2020.09.01 |