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中引入。