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'
Flag | Description |
---|---|
g | Global search. |
i | Case-insensitive search. |
m | Multi-line search. |
u | Unicode; treat pattern as a sequence of Unicode code points |
y | Perform 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;