no-empty-character-class
Запрещает пустые классы символов в регулярных выражениях
Использование конфигурации recommended из @eslint/js в файле конфигурации включает это правило
Поскольку пустые классы символов в регулярных выражениях ничего не находят, они могут быть результатом опечатки.
const foo = /^abc[]/;
Подробное описание правила
Это правило запрещает пустые классы символов в регулярных выражениях.
Примеры неправильного кода для этого правила:
/*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
Примеры правильного кода для этого правила:
/*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"*/
const 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