Eslint
规则 | Rules

no-invalid-regexp

禁止在RegExp构造函数中使用无效的正则表达式字符串(no-invalid-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 6将以下标志参数添加到RegExp构造函数中:

  • "u" (unicode)

您可以通过在您的ESLint配置中将ECMAScript版本设置为6来将这些设置识别为有效。

如果您想出于任何原因允许其他构造函数标志,您可以使用.eslintrc中的allowConstructorFlags选项指定它们。 无论ecmaVersion设置如何,这些标志都将被规则忽略。

选项

该规则有一个例外的对象选项:

  • "allowConstructorFlags" 是一组标志

allowConstructorFlags

此规则的正确代码示例包含以下{ "allowConstructorFlags": ["u", "y"] }选项:

/*eslint no-invalid-regexp: ["error", { "allowConstructorFlags": ["u", "y"] }]*/ new RegExp('.', 'y') new RegExp('.', 'yu')

扩展内容

版本

该规则在ESLint 0.1.4中引入。

资源