# no-invalid-regexp

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

配置文件中的 "extends": "eslint:recommended" 属性启用了该规则

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

# 规则详情

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

此规则的错误代码示例:

/*eslint no-invalid-regexp: "error"*/

RegExp('[')

RegExp('.', 'z')

new RegExp('\\')

此规则的正确代码示例:

/*eslint no-invalid-regexp: "error"*/

RegExp('.')

new RegExp

this.RegExp('[')

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

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

# 选项

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

  • "allowConstructorFlags" 是一个标志数组

# allowConstructorFlags

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

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

new RegExp('.', 'a')

new RegExp('.', 'az')
Last Updated: 5/13/2023, 8:55:38 PM