no-invalid-regexp
禁止在 RegExp
构造函数中使用无效的正则表达式字符串
✅ 推荐
在配置文件中使用来自 @eslint/js
的 recommended
配置启用此规则
正则表达式文字中的无效模式在代码解析时会产生 SyntaxError
,但是 RegExp
构造函数中的无效字符串仅在代码执行时才会抛出 SyntaxError
。
规则详情
此规则禁止在 RegExp
构造函数中使用无效的正则表达式字符串。
此规则的错误代码示例
在 Playground 中打开
/*eslint no-invalid-regexp: "error"*/
此规则的正确代码示例
在 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 中引入。