Javascript: 命名捕获组
ES2018引入了正则表达式的命名捕获组,这使得在JavaScript中使用命名捕获组成为可能。这种特性在Chrome 64中已经可用,并且很快也会在Safari中可用。
以下是一个在Chrome 64中已经可以工作的示例:
const isoDateExpression = /(?<year>[0-9]{4})-(?<month>[0-9]{2})-(?<day>[0-9]{2})/; let match = isoDateExpression.exec('1999-12-31'); console.log( match.groups.year, // 1999 match.groups.month, // 12 match.groups.day, // 31 )
命名捕获组的语法参考:
https://github.com/tc39/proposal-regexp-named-groups
Firefox还没有决定是否支持命名捕获组,但是在Mozilla的问题跟踪器中有一个相关的条目:
https://bugzilla.mozilla.org/show_bug.cgi?id=1362154
编辑:命名捕获组现在已经在主要浏览器中实现,并且自Chrome 62 (2018)、Firefox 78 (2020)和Safari 11.3 (2018)起可用。