RegExp constructors (no-invalid-regexp)The "extends": "eslint:recommended" property in a configuration file enables this rule.
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.
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 6 adds the following flag arguments to the RegExp constructor:
You can enable these to be recognized as valid by setting the ECMAScript version to 6 in your ESLint configuration.
If you want to allow additional constructor flags for any reason, you can specify them using an allowConstructorFlags option in .eslintrc. These flags will then be ignored by the rule regardless of the ecmaVersion setting.
This rule has an object option for exceptions:
"allowConstructorFlags" is an array of flagsExamples of correct code for this rule with the { "allowConstructorFlags": ["u", "y"] } option:
/*eslint no-invalid-regexp: ["error", { "allowConstructorFlags": ["u", "y"] }]*/
new RegExp('.', 'y')
new RegExp('.', 'yu')
This rule was introduced in ESLint 0.1.4.
© JS Foundation and other contributors
Licensed under the MIT License.
https://eslint.org/docs/rules/no-invalid-regexp