Spec-Zone.ru › ESLint

no-empty-character-class

Запрет пустых символьных классов в регулярных выражениях

✅ Рекомендуется

Использование конфигурации recommended из @eslint/js в файле конфигурации включает эту правило

Поскольку пустые символьные классы в регулярных выражениях ничего не сопоставляют, они могут быть опечатками.

var foo = /^abc[]/;

Подробное описание правила

Это правило запрещает пустые символьные классы в регулярных выражениях.

Примеры неправильного кода для этого правила:

Открыть в Playground
/*eslint no-empty-character-class: "error"*/

/^abc[]/.test("abcdefg"); // false
"abcdefg".match(/^abc[]/); // null

/^abc[[]]/v.test("abcdefg"); // false
"abcdefg".match(/^abc[[]]/v); // null

/^abc[[]--[x]]/v.test("abcdefg"); // false
"abcdefg".match(/^abc[[]--[x]]/v); // null

/^abc[[d]&&[]]/v.test("abcdefg"); // false
"abcdefg".match(/^abc[[d]&&[]]/v); // null

const regex = /^abc[d[]]/v;
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

Примеры правильного кода для этого правила:

Открыть в 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"]

Известные ограничения

Это правило не сообщает о пустых символьных классах в строковом аргументе вызовов конструктора RegExp.

Пример ложноотрицательного результата, когда это правило сообщает о правильном коде:

/*eslint no-empty-character-class: "error"*/

var abcNeverMatches = new RegExp("^abc[]");

Версия

Это правило было добавлено в ESLint v0.22.0.

Ресурсы

  • Исходный код правила
  • Исходный код тестов

© OpenJS Foundation and other contributors
Licensed under the MIT License.
https://eslint.org/docs/latest/rules/no-empty-character-class

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API