版本

prefer-named-capture-group

强制在正则表达式中使用命名捕获组

💡 hasSuggestions

此规则报告的一些问题可以通过编辑器建议手动修复

规则详情

随着 ECMAScript 2018 的发布,可以在正则表达式中使用命名捕获组,这可以提高其可读性。此规则旨在在正则表达式中使用命名捕获组而不是编号捕获组

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

或者,如果您不打算捕获结果,而只是表达备选方案,请使用非捕获组

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

此规则的错误代码示例

在游乐场中打开
/*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.

此规则的正确代码示例

在游乐场中打开
/*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 及更高版本的环境中受支持。

版本

此规则是在 ESLint v5.15.0 中引入的。

资源

更改语言