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개만 μžˆμŠ΅λ‹ˆλ‹€.

μ •κ·œ ν‘œν˜„μ‹μ— ν”Œλž˜κ·Έλ₯Ό ν¬ν•¨μ‹œν‚€λ €λ©΄ μ•„λž˜μ˜ 문법을 μ‚¬μš©ν•˜μ„Έμš”:

var re = /pattern/flags;

λ˜λŠ”

var re = new RegExp('pattern', 'flags');
μ •κ·œ ν‘œν˜„μ‹ ν”Œλž˜κ·Έ
ν”Œλž˜κ·Έ μ„€λͺ…
g μ „μ—­ 검색.
i λŒ€μ†Œλ¬Έμž ꡬ별 없이 검색.
m μ—¬λŸ¬ 쀄(Multi-line) 검색.
u μœ λ‹ˆμ½”λ“œ; νŒ¨ν„΄μ„ μœ λ‹ˆμ½”λ“œ μ½”λ“œ 포인트의 λ‚˜μ—΄λ‘œ μ·¨κΈ‰.
y ν˜„μž¬ μœ„μΉ˜μ—μ„œ 검색. ("sticky" 검색). sticky μ°Έμ‘°.

예제

5개의 ν”Œλž˜κ·Έλ§Œμ΄ μœ νš¨ν•©λ‹ˆλ‹€.

/foo/bar;

// SyntaxError: invalid regular expression flag "b"

μ •κ·œ ν‘œν˜„μ‹μ„ λ§Œλ“€λ €κ³  ν–ˆλ‚˜μš”? 두 개의 μŠ¬λž˜μ‹œκ°€ ν¬ν•¨λœ ν‘œν˜„μ‹μ€ μ •κ·œ ν‘œν˜„μ‹ 문자둜 ν•΄μ„λ©λ‹ˆλ‹€.

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

// SyntaxError: invalid regular expression flag "W"

μ•„λ‹ˆλ©΄ λ¬Έμžμ—΄λ‘œ λ§Œλ“€λ €κ³  ν–ˆλ‚˜μš”? μž‘μ€ λ”°μ˜΄ν‘œ λ˜λŠ” 큰 λ”°μ˜΄ν‘œλ₯Ό μΆ”κ°€ν•˜μ—¬ λ¬Έμžμ—΄μ„ λ§Œλ“­λ‹ˆλ‹€.

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

μœ νš¨ν•œ μ •κ·œ ν‘œν˜„μ‹ ν”Œλž˜κ·Έ

μžλ°”μŠ€ν¬λ¦½νŠΈμ—μ„œ ν—ˆμš©ν•˜λŠ” 5개의 μœ νš¨ν•œ μ •κ·œ ν‘œν˜„μ‹ ν”Œλž˜κ·Έλ₯Ό μœ„μ˜ ν‘œμ—μ„œ ν™•μΈν•˜μ„Έμš”.

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

같이 보기