prefer-named-capture-group
在正则表达式中强制使用命名的捕获组
规则详情
随着 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.
何时不使用
Hc73L2ztdBWtbu8Uks4I7qgU/32Zr4Vg0RFfh4P6KwbKC9swYI/JhVRdki5FZMxLSiYH1CJ111ZualVcvuIS1M6mT04E0o0ANqgbrhUYxusT+Gw4IvyZYP0lfdmCJzg4M1M9AjYHzat3XaztUVIGHls8eCQRbvf+vMB7lnDmdDGbzJRCvqQNwhxCHCmghfZrDDuJ9JRtXmor7Wc08zOKZwUjUPbp02vSjPvgLoh8CX9FDwdVd9MKMCvpbYSBdkYq