// 예를 들어 010-1111-2222 라는 전호번호는
// "숫자3개", "-", "숫자4개", "-", "숫자4개" 로 이루어져 있는데,
const regex = /\d{3}-\d{4}-\d{4}/;
// (\d는 숫자를 의미하고, {} 안의 숫자는 갯수를 의미한다.)
regex.test('010-1111-2222') // true;
regex.test('01-11-22') // false;
슬래쉬 문자 두개 사이로 정규식 기호가 들어가는 형태
i는 정규식 플래그
/regexr/i
// 리터럴 방식
const regex = /abc/;
cosnt flags = 'i';
const regex = new RegExp('abapplec', flags);
// 생성자 방식
const regex = new RegExp("abc");
const regex = new RegExp(/abc/); // 이렇게 해도 됨
📌 match(/정규표현식/,플래그) : 문자열에서 정규표현식에 매칭되는 항목들을 배열로 반환
📌 replace(/정규표현식/,대체문자열) : 정규표현식에 매칭되는 항목을 대체문자열로 변환
📌 split(정규표현식) : 문자열을 정규표현식에 매칭되는 항목으로 쪼개어 배열로 반환
📌 test(문자열) : 문자열이 정규표현식과 매칭되면 true, 아니면 false
📌 exec(문자열) : match와 유사하지만, 첫번째 매칭 결과만 반환
고급 검색을 위한 전역 옵션을 설정할 수 있도록 지원하는 기능
- i : 대소문자를 구별하지 않고 검색
Ignore Case
- g : 문자열 내의 모든 패턴을 검색
Global
- m : 문자열의 행이 바뀌더라도 검색을 계속함
Multi Line
- s : 개행 문자 \n이 포함되도록
- u : 유니코드 전체를 지원
unicode
- y : 문자 내 특정 위치에서 검색을 진행하는
sticky
모드를 활성화
// 전역검색
// `a`가 두 개 포함된 문자열
const str = "abcabc";
//공백 문자열을 나타내는 패턴
content.split(/\s+/);
//'/' : 정규표현식의 시작
//'\s' : 공백 문자. 이는 탭, 스페이스바, 줄바꿈 등을 모두 포함
//'+' : 하나 이상의 문자를 찾음. 이 경우에는 하나 이상의 공백 문자열을 찾음
//'/' : 정규표현식의 끝을 나타냄
// `g` 플래그 없이는 최초에 발견된 문자만 반환
str.match(/a/); // ["a", index: 0, input: "abcabc", groups: undefined]
// `g` 플래그가 있으면 모든 결과가 배열로 반환
str.match(/a/g); // (2) ["a", "a"]
const str = "abcABC";
// 대소문자 a 검색
str.match(/a/gi); // (2) ["a", "A"]
a-zA-Z
영어알파벳(-으로 범위 지정)ㄱ-ㅎ가-힣
한글 문자0-9
숫자.
모든 문자열 단, 줄바꿈x\d
숫자\D
숫자가 아닌 것\w
밑줄 문자를 포함한 영숫자 문자에 대응 i.e)[A-Za-z0-9]
와 동일\W
\w가 아닌 것 \s
space 공백\S
space 공백이 아닌 것\특수기호
특수기호 \*\^\&\!\?
등\b
63개 문자(영문 대소문자 52개, 숫자 10개, _(underscore))가 아닌 나머지 문자에 일치하는 경계(boundary)\B
63개 문자에 일치하는 경계\x
16진수 문자에 일치 /\x61/는 a에 일치
\0
8진수 문자에 일치 /\141/은 a에 일치
\u
유니코드 문자에 일치 /\u0061/는 a에 일치
\c
제어 문자에 일치\f
폼 피드(FF, U+000C) 문자에 일치\n
줄 바꿈(LF, U+000A) 문자에 일치\r
캐리지 리턴(CR, U+000D) 문자에 일치\t
탭(U+0009) 문자에 일치|
: OR []
: 괄호안의 문자들 중 하나, or 처리 묶음[^문자]
: 괄호안의 문자를 제외한 것^문자열
: 특정 문자열로 시작(시작점) /^www/
문자열$
: 특정 문자열로 끝남(종착점) /com$/
?
: none or just one thing /apple?/*
: none or many things /apple*/+
: at least one thing /apple+/*?
: 없거나 있거나 and 없거나 최대 한개: 없음
{0}와 동일+?
: 최소 한개, 있거나 and 없거나, 최대 한개: 한개
{1}와 동일{n}
: n개 {Min,}
: 최소 Min개 이상 {Min, Max}
: 최소 Min개 이상, 최대 Max개 이하 {3,5}? == {3}와 동일 ()
: 그룹화 및 캡쳐(?: 패턴)
: 그룹화(캡쳐X)(?=)
: 앞쪽 일치(Lookhead), /ab(?=c)/(?!)
: 부정 앞쪽 일치(Negative Lookahead), /ab(?!c)/(?<=)
: 뒤쪽 일치(Lookbhind), /(?<=ab)c/(?<!)
: 부정 뒤쪽 일치(Negative Lookbehind), /(?<!ab)c/