Disallow invalid regular expression strings in RegExp
constructors
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('[')
Please note that this rule validates regular expressions per the latest ECMAScript specification, regardless of your parser settings.
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.
This rule has an object option for exceptions:
"allowConstructorFlags"
is an array of flagsExamples 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')
This rule was introduced in ESLint v0.1.4.
© OpenJS Foundation and other contributors
Licensed under the MIT License.
https://eslint.org/docs/latest/rules/no-invalid-regexp