Spec-Zone.ru › ESLint

группировка-с-именованными-захватами

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

💡 hasSuggestions

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

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

С появлением 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