정규식
문자열에서 특정 문자 조합을 찾기 위한 패턴
Meta문자
정규표현식에서 사용되는 기호
^ | 문자열 시작 |
$ | 문자열 종료 |
. | 임의의 한 문자의 자리수 |
+ | 문자 한번 이상 반복 {1, } |
* | 문자 0번 이상 반복 {0, } |
? | 존재여부 표현 (존재할수도, 존재하지 않을수도) |
() | 그룹 처리 |
{n} | 문자의 개수 = n |
{n,} | 최소 n개의 문자 |
{n, m} | 최소 n, 최대 m개 |
[xy] | 문자 선택, x와 y 중에 하나 |
[^xy] | ^은 not을 의미하며 x,y를 제외한 문자 |
[x-z] | x에서 z까지의 문자 |
\d | 숫자 |
\D | 숫자가 아닌 것 |
\s | 공백 (space) |
\S | 공백이 아닌것 |
\t | tab |
\^ | ^ |
\b | 단어의 경계 (boundary) |
flag
flag를 사용하지 않으면 문자열에 대해서 검색을 한번만 처리하고 종료
g | 대상 문자열내에 모든 패턴들을 검색 (global) |
i | 대상 문자열에 대해서 대/소문자를 구분하지 않음 (ignore) |
m | 대상 문자열이 다중 라인의 문자열인 경우에도 검색 (multi) |
정규표현식 메서드
exec() | 문자열에서 일치하는 부분을 탐색 (일치하는 정보의 배열) |
test() | 문자열에 일치하는 부분이 있는지 확인 (true 또는 false를 반환) |
match() | 캡처 그룹을 포함해서 모든 일치를 담은 배열 반환 |
matchAll() | 캡처 그룹을 포함해서 모든 일치를 담은 반복기 반환 |
search() | 문자열에서 일치하는 부분을 탐색, 일치하는 부분의 인덱스 반환 (일치가 없는 경우 -1 반환) |
replace() | 문자열에서 일치하는 부분을 탐색하고, 그 부분을 대체 문자열로 변경 |
replaceAll() | 문자열에서 일치하는 부분을 모두 탐색하고, 모두 대체 문자열로 변경 |
split() | 정규 표현식 또는 문자열 리터럴을 사용해서 문자열을 부분 문자열의 배열로 나눔 |
정규표현식 표현 예시
(?=.*[a-zA-Z])
최소 하나의 영문(소문자, 대문자)
(?=.*?[A-Z])
최소 하나의 대문자 영문
(?=.*?[a-z])
최소 하나의 소문자 영문
(?=.*?[0-9])
최소 하나의 숫자
(?=.*?[#?!@$%^&*-])
[...] 중에서 최소 하나의 특수문자
.{최소,최대}
문자의 최소, 최대 길이
정규표현식의 시작과 끝은 / 으로 한다.
var reg =/^(?=.*[A-Za-z])(?=.*\d)[A-Za-z\d]{8,20}$/
최소 하나의 영문자 + 최소 하나의 숫자 + 최소 8자, 최대 20자
var reg =/^(?=.*[A-Z])(?=.*[a-z])(?=.*\d)(?=.*[@$!%*#?&])[A-Za-z\d@$!%*#?&]{8,20}$/
최소 하나의 대문자 + 최소 하나의 소문자 + 최소 하나의 숫자 + 최소 한개의 특수문자 + 최소 8자, 최대 20자
'WEB > JavaScript' 카테고리의 다른 글
회원가입 페이지 - html, CSS, javascript (0) | 2022.06.23 |
---|---|
JSON : 데이터를 표현하기 위한 문자 기반의 표준 포맷 (0) | 2022.06.17 |
자바스크립트 : classList - 클래스 확인, 추가, 제거, 변경 (0) | 2022.06.16 |
자바스크립트 : Date() / 이번 달 달력 만들기 (0) | 2022.06.16 |
자바스크립트 : 이벤트 event (1) | 2022.06.16 |