Spec-Zone.ru › ESLint

prefer-named-capture-group

Требует использовать именованные группы захвата в регулярных выражениях

💡 есть предложения

Некоторые проблемы, о которых сообщает это правило, можно исправить вручную с помощью предложений редактора

Описание правила

С появлением ECMAScript 2018 в регулярных выражениях можно использовать именованные группы захвата, что повышает их читаемость. Это правило рекомендует использовать именованные группы захвата вместо пронумерованных в регулярных выражениях:

const regex = /(?<year>[0-9]{4})/;

Если же вы не собираетесь захватывать результаты, а хотите лишь указать альтернативу, используйте группу без захвата:

const regex = /(?:cauli|sun)flower/;

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

Открыть в Playground
/*eslint prefer-named-capture-group: "error"*/

const foo = /(ba[rz])/;
const bar = new RegExp('(ba[rz])');
const baz = RegExp('(ba[rz])');

foo.exec('bar')[1]; // Retrieve the group result.

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

Открыть в Playground
/*eslint prefer-named-capture-group: "error"*/

const foo = /(?<id>ba[rz])/;
const bar = new RegExp('(?<id>ba[rz])');
const baz = RegExp('(?<id>ba[rz])');
const xyz = /xyz(?:zy|abc)/;

foo.exec('bar').groups.id; // Retrieve the group result.

Параметры

У этого правила нет параметров.

Когда не следует использовать это правило

Если вы ориентируетесь на ECMAScript 2017 или более старые среды, не используйте это правило, поскольку эта возможность ECMAScript поддерживается только в ECMAScript 2018 и более новых средах.

Связанные правила

  • no-invalid-regexp

Версия

Это правило появилось в ESLint v5.15.0.

Ресурсы

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

© OpenJS Foundation and other contributors
Licensed under the MIT License.
https://eslint.org/docs/latest/rules/prefer-named-capture-group

Spec-Zone.ru

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