Skip to content

noEmptyCharacterClassInRegex (since v1.3.0)

Diagnostic Category: lint/correctness/noEmptyCharacterClassInRegex

Sources:

Disallow empty character classes in regular expression literals.

Empty character classes don’t match anything. In contrast, negated empty classes match any character. They are often the result of a typing mistake.

/^a[]/.test("a"); // false
correctness/noEmptyCharacterClassInRegex.js:1:4 lint/correctness/noEmptyCharacterClassInRegex ━━━━━━━━━━

   The regular expression includes this empty character class.
  
  > 1 │ /^a[]/.test("a"); // false
      ^^
    2 │ 
  
   Empty character classes don't match anything.
    If you want to match against [, escape it \[.
    Otherwise, remove the character class or fill it.
  
/^a[^]/.test("ax"); // true
correctness/noEmptyCharacterClassInRegex.js:1:4 lint/correctness/noEmptyCharacterClassInRegex ━━━━━━━━━━

   The regular expression includes this negated empty character class.
  
  > 1 │ /^a[^]/.test("ax"); // true
      ^^^
    2 │ 
  
   Negated empty character classes match anything.
    If you want to match against [, escape it \[.
    Otherwise, remove the character class or fill it.
  
/^a[xy]/.test("ay"); // true
/^a[^xy]/.test("ab"); // true
/^a\[]/.test("a[]"); // true