pageClass | sidebarDepth | title | description | since |
---|---|---|---|---|
rule-details |
0 |
regexp/no-invalid-regexp |
disallow invalid regular expression strings in `RegExp` constructors |
v1.0.0 |
💼 This rule is enabled in the ✅ plugin:regexp/recommended
config.
disallow invalid regular expression strings in
RegExp
constructors
This rule reports invalid regular expression patterns given to RegExp
constructors.
/* eslint regexp/no-invalid-regexp: "error" */
/* ✓ GOOD */
RegExp('foo')
RegExp('[a' + ']')
/* ✗ BAD */
RegExp('\\')
RegExp('[a-Z]*')
RegExp('\\p{Foo}', 'u')
const space = '\\s*'
RegExp('=' + space + '+(\\w+)', 'u')
This rule is almost functionally equivalent to ESLint's no-invalid-regexp rule. The only difference is that this rule doesn't valid flags (see no-non-standard-flag).
There are two reasons we provide this rule:
-
Better error reporting.
Instead of reporting the whole invalid string, this rule will try to report the exact position of the syntax error.
-
Better support for complex constructor calls.
ESLint's rule only validates
RegExp
constructors called with simple string literals. This rule also supports operations (e.g. string concatenation) and variables to some degree.
Nothing.
This rule was introduced in eslint-plugin-regexp v1.0.0