1.정규표현식
- 특정 규칙을 가진 문자열의 집합이다.
regexp
또는 regex
라고 부른다.
- 특수문자
/
, \
를 사이에 두고 일치하는 문자열을 반환, 치환한다.
String
객체 메소드 또는 RegEx
객체의 내장 메소드를 활용한다.
🤜 1-1. 정규표현식 4가지 플래그(flag)
g
: 전역 범위에서 해당하는 모든 문자를 찾는다.
i
: 대소문자를 구분하지 않는다.
m
: ^
, $
와 함께 문자를 비교한다. 각 문자는 문자열의 처음과 끝을 의미하며 m
플래그가 있으면 각 행마다의 처음과 끝을 가리키며 없으면 문자열의 가장 처음과 마지막을 가리킨다.
y
: lastIndex
로 지정한 위치부터 일치하는 문자를 찾는다.
🤜 1-2. 특정 세트의 문자 확인
\w
: 모든 단어 문자와 일치 여부를 확인한다.
\W
: 모든 단어 문자와 불일치 여부를 확인한다.
\d
: 임의의 숫자 0 ~ 9와 일치 여부를 확인한다.
\D
: 숫자가 아닌 모든 문자를 확인한다.
\s
: 공백 문자와 일치 여부를 확인한다.
\S
: 공백 문자가 아닌 문자를 확인한다.
2. 대응되는 문자열 위치(search)
const str = "I want to go home.";
const regex1 = /o/g;
const regex2 = /i/gi;
console.log(str.search(regex1));
console.log(str.search(regex2));
정규표현식
을 매개변수로 대입하여 일치하는 첫 번째 값의 인덱스 위치를 반환한다.
3. 문자열 확인(match)
const str = "I want to go home.";
const regepx1 = /([a-f])\w+/i;
const regepx2 = /([a-f])\w+/gi;
console.log(str.match(regepx1));
console.log(str.match(regepx2));
- 값이 일치할 경우 추가정보와 함께 배열로 반환한다.
g
플래그가 아닐때만 추가정보를 반환한다.
- 추가정보
👉 인자로 대입한 값과 일치하는 값
👉 인덱스 위치
👉 원본 문자열
4. 포함 여부 확인(test)
const phoneCheck = /\d{3}-\d{3,4}-\d{4}/;
console.log(phoneCheck.test("010-1234-1234"));
- RegEx 객체의 메소드
- 대입된 문자열이 정규표현식에 맞으면 true, 아니면 false를 반환한다.
5. 배열로 반환(exec)
const str = "I want to go home";
console.log(/home/gi.exec(str));
- 정규표현식과 일치하는 문자를 찾아 배열로 반환한다.
match
와 차이점은 현재 위치를 가리키는 lastIndex
를 계속 업데이트한다.
6. 문자열 치환(replace)
console.log("2021-02-27".replace("-", "/"));
console.log("2021-02-27".replace(/-/g, "/"));
- 특정 문자열을 검색한 뒤 원하는 문자열로 반환한다.
- 첫번째 인자로
교체 문자열
또는 정규식
, 두번째 인자로 대체될 문자
또는 함수
를 받는다.
- 일치하는 첫 번째 항목을 찾고
g
플래그를 사용하면 모든 문자열을 찾는다.
- 두번째 인자로 함수를 정의할 때는 여러 매개변수를 사용한다.
👉 일치하는 문자열
👉 일치하는 값들
👉 일치하는 값의 위치
👉 원본 문자열