
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