JS 정규식

정규식

정규식은 문자열에서 특정 내용을 찾거나 대체할 때 사용됩니다.

문장이 필터링 되어야 하는 경우 정규표현식을 이용하면 간편하게 처리할 수 있어 유용합니다.

 

JS에서 주로 search(), replace(), match(), split() 등과 같은 메서드에 쓰입니다.

  • 문자열.search(정규표현식)
  • 문자열.replace(정규표현식, 치환문자열)
  • 문자열.match(정규표현식)
  • 문자열.split(정규표현식)

 

  • 정규표현식.exec(문자열): 패턴과 일치하는 문자열을 배열로 반환
  • 정규표현식.test(문자열): 패턴과 일치하는 문자열이 있는지 여부를 반환

 

 

 

 

 

정규식 규칙: /패턴/수정자

패턴

패턴 부분 정규식 규칙을 대부분 비슷합니다.

 

정규식 규칙

정규식 규칙 기호

| OR
a|b
[문자] 대괄호 내에 지정된 문자 집합 안의 문자들 중 문자 하나와 일치. 이때 '-'를 통해 범위 표현 가능합니다.
/[abc]/a, b, c 중 문자 한 개와 일치
/[esx-z]/ : e, s, x, y, z 중 문자 한 개와 일치
/[가-힣]/모든 한글 문자 한 개와 일치
[^문자] 대괄호안의 문자를 제외한 것
[^0-9] : 숫자 외의 문자 한 개와 일치
^문자열 지정 문자열로 시작
/^www/
문자열$ 지정 문자열로 끝남
/com$/
. 온점은 임의의 문자를 의미, 이때 문자는 개행 문자를 제외하고 모두 허용합니다.
줄바꿈도 허용하게 하기 위해선 수정자에 s 포함시키면 됩니다.
\d \D \d: 숫자
\D: 숫자 외 문자
\w \W \w: 알파벳, 숫자, 언더바인 문자
\W: 알파벳, 숫자, 언더바를 제외한 문자
\s \S \s: space 공백
\S: space 공백이 아닌 것
? 없거나 한 개만
* 없거나 여러 개 있거나
+ 최소 한 개 이상
*? 없어야 함
+? 한 개만
{n} n개
{n,} 최소 n개 이상
{n, m} 최소 n개 이상, 최대 m개 이하

 

\x 16진수 문자에 일치
/\x61/는 a에 일치
\0 8진수 문자에 일치
/\141/은 a에 일치
\u 유니코드(Unicode) 문자에 일치
/\u0061/는 a에 일치
\c 제어(Control) 문자에 일치
\f 다음 페이지
\n 개행
\r 캐리지 리턴 (= 커서를 줄 맨 앞으로 이동)
\t

 

 

수정자

  • i : 대소문자 구분하지 않고 검색합니다.
  • g : 전역 검색으로, 매칭되는 문장을 만나도 멈추지 않고, 전체적으로 검색합니다.
  • m : 문자열의 행이 바뀌더라도 검색을 계속합니다.