Versions

no-invalid-regexp

Disallow invalid regular expression strings in RegExp constructors

Recommended

The "extends": "eslint:recommended" property in a configuration file enables this rule

正则表达式字面中的无效模式在解析代码时是一个 SyntaxError,但 RegExp 构造函数中的无效字符串只在执行代码时抛出一个 SyntaxError

规则细节

这条规则不允许在 RegExp 构造函数中使用无效的正则表达式字符串。

使用此规则的错误示例:

Open in Playground
/*eslint no-invalid-regexp: "error"*/

RegExp('[')

RegExp('.', 'z')

new RegExp('\\')

使用此规则的正确示例:

Open in Playground
/*eslint no-invalid-regexp: "error"*/

RegExp('.')

new RegExp

this.RegExp('[')

请注意,该规则根据最新的 ECMAScript 规范验证正则表达式,与你的解析器设置无关。

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

选项

这条规则有一个例外情况的对象选项;

  • "allowConstructorFlags" 是保护标志的一个数组

allowConstructorFlags

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

Open in Playground
/*eslint no-invalid-regexp: ["error", { "allowConstructorFlags": ["a", "z"] }]*/

new RegExp('.', 'a')

new RegExp('.', 'az')

Version

This rule was introduced in ESLint v0.1.4.

Further Reading

Resources

更改语言