diff --git a/packages/babel-plugin-transform-named-capturing-groups-regex/src/index.js b/packages/babel-plugin-transform-named-capturing-groups-regex/src/index.js index 042d16de9d..d646101852 100644 --- a/packages/babel-plugin-transform-named-capturing-groups-regex/src/index.js +++ b/packages/babel-plugin-transform-named-capturing-groups-regex/src/index.js @@ -12,7 +12,7 @@ export default function({ types: t }, options) { visitor: { RegExpLiteral(path) { const node = path.node; - if (node.pattern.indexOf("(?<") === -1) { + if (!/\(\?<(?![=!])/.test(node.pattern)) { // Return early if there are no named groups. // The .indexOf check may have false positives (e.g. /\(?[a])/ + +const result = regex.exec("aa"); + +expect(result.groups).toEqual({ + a: "a" +}); diff --git a/packages/babel-plugin-transform-named-capturing-groups-regex/test/fixtures/runtime/issue-10393/options.json b/packages/babel-plugin-transform-named-capturing-groups-regex/test/fixtures/runtime/issue-10393/options.json new file mode 100644 index 0000000000..2454c2169c --- /dev/null +++ b/packages/babel-plugin-transform-named-capturing-groups-regex/test/fixtures/runtime/issue-10393/options.json @@ -0,0 +1,3 @@ +{ + "minNodeVersion": "8.0.0" +}