const target = `Is this all there is?`;
cosnt regExp = /is/;
regExp.exec(target); // ["is", index: 5,input: "Is this ....]
g플래그
를 지정해도 첫 번째 매칭 결과만 반환하므로 주의해야함const target = `Is this all there is?`;
cosnt regExp = /is/;
regExp.test(target); // true
const target = `Is this all there is?`;
cosnt regExp = /is/;
target.match(regExp); //["is", index: 5,input: "Is this ....]
g플래그
를 지정하면 모든 매칭 결과를 배열로 반환한다.플래그는 총 6개가 있으며 그중 중요한 3개의 플래그를 살펴보도록 한다.
플래그 | 의미 | 설명 |
---|---|---|
i | ignore | 대소문자를 구별하지 않고 패턴을 검색한다. |
g | Global | 대상 문자열 내에서 패턴과 일치하는 모든 문자열을 전역 검색한다. |
m | Multi line | 문자열의 행이 바뀌더라도 패턴 검색을 계속한다. |
/
로 열고 닫으며 문자열의 따옴표는 생략한다.아래에서는 패턴을 표현하는 몇 가지 방법에 대해 살펴보도록 한다.
const target = `Is this all there is?`;
cosnt regExp = /is/ig;
// 플래그 i를 추가하여 대소문자를 구별하지 않고 검색
// 플래그 g를 추가하여 모든 문자열 전역 검색
target.match(regExp); // ["Is", "is", "is"]
.
은 임의의 문자 한 개를 의미한다..
을 3개 연속하여 패턴을 생성하면 내용과 상관없이 3자열과 매치한다.const target = `Is this all there is?`;
cosnt regExp = /.../g;
target.match(regExp); // ["Is ", "thi", "s a", "ll ", "the", "re ", "is?"]
{m,n}
은 앞선 패턴이 최소 m
번, 최대 n
번 반복되는 문자열을 의미한다.{n,}
은 앞선 패턴이 최소 n
번 이상 반복되는 문자열을 의미한다.const target = `A AA B BB Aa Bb AAA`;
cosnt regExp = /A{1,2}/g;
// A가 최소 1번 최대 2번 반복되는 문자열을 전역 검색
target.match(regExp); // ["A", "AA", "A", "AA", A"]
+
는 앞선 패턴이 최소 한번 이상 반복되는 문자열을 의미한다. = {1,}
?
는 앞선 패턴이 최대 한 번(0번 포함) 이상 반복되는 문자열을 의미한다. = {0,1}
|
는 or
의 의미를 갖는다.const target = `A AA B BB Aa Bb`;
cosnt regExp = /A|B/g;
// A또는 B를 전역 검색
target.match(regExp); // ["A", "A", "A", "B", "B", "B", "A", "B"]
[ ]
내의 문자는 or로 동작한다.[ ]
내에 -
를 사용한다.const target = `AA BB Aa Bb`;
cosnt regExp = /[A-Za-z]+/g;
// A~Z, a~z 가 1번 이상 반복되는 문자열을 전역 검색
target.match(regExp); // ["A", "BB", "Aa", "Bb"]
\d
는 숫자
를 의미한다.\D
는 \d
와 반대로 동작한다. (즉, 숫자가 아닌 문자를 의미)\w
는 알파벳, 숫자, 언더스코어
를 의미한다.\W
는 \w
와 반대로 동작한다. (즉, 알파벳, 숫자, 언더스코어가 아닌 문자를 의미)[...]
내
의 ^
은 not
의 의미를 갖는다.
[...]
밖
의 ^
은 문자열의 시작
을 의미 한다.
$
은 문자열의 마지막
을 의미 한다.
const url= 'https://example.com';
// [...]밖의 ^는 문자열의 시작을 의미
// | 는 or
// ? 는 앞선 패턴('s')가 0~1번 반복
/^https?:\/\//.test(url); // true
const fileName= 'idnex.html';
// $는 문자열의 마지막을 의미
/html$/.test(fileName); // true
const target= '12345';
// [...]밖의 ^는 문자열의 시작
// $ 는 문자열의 마지막
// \d 는 숫자
// + 는 앞선 패턴이 최소 한 번 이상 반복되는 문자열을 의미
/^\d+$/.test(target); // true
\s
는 여러 가지 공백문자를 의미한다.
const target= ' hi!';
/^[\s]+/.test(target); // true
const id= 'abc1234';
// [...]밖의 ^는 문자열의 시작
// $ 는 문자열의 마지막
// \d 는 숫자
// + 는 앞선 패턴이 최소 한 번 이상 반복되는 문자열을 의미
/^[A-Za-z0-9]{4,10}$/.test(id); // true