문자열에서 특정 문자 조합을 찾기 위한 패턴이다. 정규 표현식 패턴은 /abc/처럼 단순한 문자로 구성하거나, /ab+c/와 /Chapter (\d+).\d*/처럼 단순한 문자와 특수 문자의 조합으로 구성할 수도 있다.
const re = /ab+c/
정규 표현식 리터럴은 스크립트를 불러올 때 컴파일되므로, 바뀔 일이 없는 패턴의 경우 리터럴을 사용하면 성능이 향상될 수 있다.
const re = new RegExp('ab+c')
글자와 숫자처럼 다른 유형의 문자를 구분한다.
\
, .
, \cX
, \d
, \D
, \f
, \n
, \r
, \s
, \S
, \t
, \v
, \w
, \W
, \0
, \xhh
, \uhhhh
, \uhhhhh
, [\b]
어서션에는 줄이나 단어의 시작과 끝을 나타내는 경계와, 일치가 가능한 방법을 나타내는 패턴(전방탐색, 후방탐색, 조건 표현식 등)이 포함된다.
^
, $
, x(?=y)
, x(?!y)
, (?<=y)x
, (?<!y)x
, \b
, \B
표현 문자의 그룹과 범위를 나타낸다.
(x)
,(?:x)
, (?<Name>x)
, x|y
, [xyz]
, [^xyz]
, \Number
일치할 문자나 표현이 반복되어야 할 횟수를 나타낸다.
*
, +
, ?
, x{n}
, x{n,}
, x{n,m}
\p{UnicodeProperty}
, \P{UnicodeProperty}
정규 표현식은 RegExp의 메서드 test()와 exec(), String의 메서드 match(), replace(), search(), split()에서 사용할 수 있다.
const myRe = /d(b+)d/g;
const myArray = myRe.exec('cdbbdbsbz');
const 동적변수 = 'abc';
const regex = new RegExp(`[${동적변수}]`, 'g');
console.log(regex) // /[abc]/g
const call = 'abxdeydeabz'
call.match(regex); // ['a', 'a']
call.match(regex).length; // 2