no-invalid-regexp

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

Recommended

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

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

¥An invalid pattern in a regular expression literal is a SyntaxError when the code is parsed, but an invalid string in RegExp constructors throws a SyntaxError only when the code is executed.

规则详情

¥Rule Details

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

¥This rule disallows invalid regular expression strings in RegExp constructors.

此规则的错误代码示例:

¥Examples of incorrect code for this rule:

在线运行
/*eslint no-invalid-regexp: "error"*/

RegExp('[')

RegExp('.', 'z')

new RegExp('\\')

此规则的正确代码示例:

¥Examples of correct code for this rule:

在线运行
/*eslint no-invalid-regexp: "error"*/

RegExp('.')

new RegExp

this.RegExp('[')

请注意,无论你的解析器设置如何,此规则都会根据最新的 ECMAScript 规范验证正则表达式。

¥Please note that this rule validates regular expressions per the latest ECMAScript specification, regardless of your parser settings.

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

¥If you want to allow additional constructor flags for any reason, you can specify them using the allowConstructorFlags option. These flags will then be ignored by the rule.

选项

¥Options

此规则有一个异常对象选项:

¥This rule has an object option for exceptions:

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

    ¥"allowConstructorFlags" is a case-sensitive array of flags

allowConstructorFlags

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

¥Examples of correct code for this rule with the { "allowConstructorFlags": ["a", "z"] } option:

在线运行
/*eslint no-invalid-regexp: ["error", { "allowConstructorFlags": ["a", "z"] }]*/

new RegExp('.', 'a')

new RegExp('.', 'az')

版本

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

进阶读物

资源

ESLint 中文网
粤ICP备13048890号