版本

no-invalid-regexp

禁止在 RegExp 构造函数中使用无效的正则表达式字符串

推荐

配置文件 中使用来自 @eslint/jsrecommended 配置将启用此规则

正则表达式字面量中的无效模式在代码被解析时会引发 SyntaxError,但在 RegExp 构造函数中的无效字符串仅在代码执行时才会引发 SyntaxError

规则详情

此规则禁止在 RegExp 构造函数中使用无效的正则表达式字符串。

此规则的错误代码示例

在 Playground 中打开
/*eslint no-invalid-regexp: "error"*/

RegExp('[')

RegExp('.', 'z')

new RegExp('\\')

此规则的正确代码示例

在 Playground 中打开
/*eslint no-invalid-regexp: "error"*/

RegExp('.')

new RegExp

this.RegExp('[')

请注意,此规则根据最新的 ECMAScript 规范验证正则表达式,而不管您的解析器设置如何。

如果出于任何原因您想允许其他构造函数标志,您可以使用 allowConstructorFlags 选项指定它们。然后,此规则将忽略这些标志。

选项

此规则有一个用于异常的对象选项

  • "allowConstructorFlags" 是一个区分大小写的标志数组

allowConstructorFlags

使用 { "allowConstructorFlags": ["a", "z"] } 选项的此规则的正确代码示例

在 Playground 中打开
/*eslint no-invalid-regexp: ["error", { "allowConstructorFlags": ["a", "z"] }]*/

new RegExp('.', 'a')

new RegExp('.', 'az')

版本

此规则在 ESLint v0.1.4 中引入。

进一步阅读

资源

更改语言