no-empty-character-class
Disallow empty character classes in regular expressions
✅ Recommended
Using the recommended
config from @eslint/js
in a configuration file enables this rule
Because empty character classes in regular expressions do not match anything, they might be typing mistakes.
var foo = /^abc[]/;
Rule Details
This rule disallows empty character classes in regular expressions.
Examples of incorrect code for this rule:
Open in Playground
/*eslint no-empty-character-class: "error"*/
.test("abcdefg"); // false
"abcdefg".match(); // null
.test("abcdefg"); // false
"abcdefg".match(); // null
.test("abcdefg"); // false
"abcdefg".match(); // null
.test("abcdefg"); // false
"abcdefg".match(); // null
const regex = ;
regex.test("abcdefg"); // true, the nested `[]` has no effect
"abcdefg".match(regex); // ["abcd"]
regex.test("abcefg"); // false, the nested `[]` has no effect
"abcefg".match(regex); // null
regex.test("abc"); // false, the nested `[]` has no effect
"abc".match(regex); // null
Examples of correct code for this rule:
Open in Playground
/*eslint no-empty-character-class: "error"*/
/^abc/.test("abcdefg"); // true
"abcdefg".match(/^abc/); // ["abc"]
/^abc[a-z]/.test("abcdefg"); // true
"abcdefg".match(/^abc[a-z]/); // ["abcd"]
/^abc[^]/.test("abcdefg"); // true
"abcdefg".match(/^abc[^]/); // ["abcd"]
Known Limitations
This rule does not report empty character classes in the string argument of calls to the RegExp
constructor.
Example of a false negative when this rule reports correct code:
/*eslint no-empty-character-class: "error"*/
var abcNeverMatches = new RegExp("^abc[]");
Version
This rule was introduced in ESLint v0.22.0.