Saltar al contenido principal

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

Traducción Beta No Oficial

Esta página fue traducida por PageTurner AI (beta). No está respaldada oficialmente por el proyecto. ¿Encontraste un error? Reportar problema →

información

Este plugin está incluido en @babel/preset-env, específicamente en ES2025.

Este plugin transforma literales de expresiones regulares para admitir grupos de captura con nombre duplicados. No modifica el constructor new RegExp, ya que sus argumentos no pueden transformarse estáticamente con antelación: para manejar el comportamiento en tiempo de ejecución de funciones/clases, necesitarás usar un polyfill en su lugar.

Ejemplos

Entrada

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

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

Salida

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);

Instalación

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

Uso

Mediante un archivo de configuración (Recomendado)

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

Mediante la CLI

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

Mediante la API de Node

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

Opciones

runtime

boolean, valor predeterminado true

Cuando esta opción está deshabilitada, Babel no envuelve las expresiones regulares con el helper _wrapRegExp. La salida solo admite referencias internas de grupos, no propiedades en tiempo de ejecución:

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

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

Puedes leer más sobre cómo configurar opciones de plugins aquí

Referencias