在线文档教程
JavaScript
错误 | Errors

Errors: Bad regexp flag

Errors: Bad regexp flag

信息

SyntaxError: invalid regular expression flag "x" (Firefox) SyntaxError: Invalid regular expression flags (Chrome)

错误类型

SyntaxError

错哪里了?

代码中有无效的正则表达式标志。在正则表达式中,由斜杠之间的模式组成,标志在第二个标志之后定义。它们也可以在RegExp对象的构造函数中定义(第二个参数)。正则表达式标志可以单独使用或以任意顺序一起使用,但ECMAScript中只有五种。

要使用正则表达式包含标志,请使用以下语法:

var re = /pattern/flags;

或者

var re = new RegExp('pattern', 'flags'

FlagDescription
gGlobal search.
iCase-insensitive search.
mMulti-line search.
uUnicode; treat pattern as a sequence of Unicode code points
yPerform a "sticky" search that matches starting at the current position in the target string. See sticky

示例

只有五个有效的正则表达式标志。

/foo/bar; // SyntaxError: invalid regular expression flag "b"

你打算创建一个正则表达式吗?包含两个斜杠的表达式被解释为一个正则表达式文字。

let obj = { url: /docs/Web }; // SyntaxError: invalid regular expression flag "W"

还是你的意思是创建一个字符串?添加单引号或双引号来创建字符串文字。

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

有效的正则表达式标志

有关JavaScript中允许的五个有效正则表达式标志,请参见上面的表格。

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