SyntaxError: invalid regular expression flag "x"

메세지

  SyntaxError: Syntax error in regular expression (Edge)
  SyntaxError: invalid regular expression flag "x" (Firefox)
  SyntaxError: Invalid regular expression flags (Chrome)

에러 타입

무엇이 잘못되었을까?

코드에 잘못된 정규 표현식 플래그가 있습니다. 슬래시로 묶인 패턴으로 구성되어 있는 정규 표현식 문자에서 플래그는 두 번째 플래그 뒤에 정의됩니다. 플래그는 또한 RegExp 객체의 생성자 함수에서도 정의될 수 있습니다(두 번째 매개변수). 정규 표현식 플래그는 따로 또는 순서에 상관 없이 같이 사용될 수 있지만 ECMAScript에는 오직 5개만 있습니다.

정규 표현식에 플래그를 포함시키려면 아래의 문법을 사용하세요:

js
var re = /pattern/flags;

또는

js
var re = new RegExp("pattern", "flags");
플래그 설명
g 전역 검색.
i 대소문자 구별 없이 검색.
m 여러 줄(Multi-line) 검색.
u 유니코드; 패턴을 유니코드 코드 포인트의 나열로 취급.
y 현재 위치에서 검색. ("sticky" 검색). sticky 참조.

예제

5개의 플래그만이 유효합니다.

js
/foo/bar;

// SyntaxError: invalid regular expression flag "b"

정규 표현식을 만들려고 했나요? 두 개의 슬래시가 포함된 표현식은 정규 표현식 문자로 해석됩니다.

js
let obj = {
  url: /docs/Web
};

// SyntaxError: invalid regular expression flag "W"

아니면 문자열로 만들려고 했나요? 작은 따옴표 또는 큰 따옴표를 추가하여 문자열을 만듭니다.

js
let obj = {
  url: "/docs/Web",
};

유효한 정규 표현식 플래그

JavaScript에서 허용하는 5개의 유효한 정규 표현식 플래그를 위의 표에서 확인하세요.

js
/foo/g;
/foo/gim;
/foo/uy;

같이 보기