跳至主要內容

@babel/plugin-proposal-duplicate-named-capturing-groups-regex

範例

JavaScript
var re = /(?<year>\d{4})-(?<month>\d{2})|(?<month>\d{2})-(?<year>\d{4})/;

console.log(re.exec("02-1999").groups.year);

輸出

JavaScript
var re = _wrapRegExp(/(\d{4})-(\d{2})|(\d{2})-(\d{4})/, {
year: [1, 4],
month: [2, 3],
});

console.log(re.exec("02-1999").groups.year);

安裝

npm install --save-dev @babel/plugin-proposal-duplicate-named-capturing-groups-regex

使用

babel.config.json
{
"plugins": ["@babel/plugin-proposal-duplicate-named-capturing-groups-regex"]
}

透過 CLI

Shell
babel --plugins @babel/plugin-proposal-duplicate-named-capturing-groups-regex script.js

透過 Node API

JavaScript
require("@babel/core").transformSync("code", {
plugins: ["@babel/plugin-proposal-duplicate-named-capturing-groups-regex"],
});

選項

runtime

布林值,預設為 true

當此選項停用時,Babel 就不會使用 _wrapRegExp 輔助程式包裝 RegExps。輸出只支援內部群組參考,而不支援執行時期屬性

JavaScript
var stringRe = /(?:(?<quote>")|(?<quote>')).*?\k<quote>/;

stringRe.test("'foo'"); // "true", works
stringRe.exec("'foo'").groups.quote; // undefined
提示

你可以 在此處 閱讀更多關於設定外掛選項的資訊

參考資料