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