@babel/plugin-transform-duplicate-named-capturing-groups-regex
Esta página fue traducida por PageTurner AI (beta). No está respaldada oficialmente por el proyecto. ¿Encontraste un error? Reportar problema →
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
var re = /(?<year>\d{4})-(?<month>\d{2})|(?<month>\d{2})-(?<year>\d{4})/;
console.log(re.exec("02-1999").groups.year);
Salida
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
- Yarn
- pnpm
- Bun
npm install --save-dev @babel/plugin-transform-duplicate-named-capturing-groups-regex
yarn add --dev @babel/plugin-transform-duplicate-named-capturing-groups-regex
pnpm add --save-dev @babel/plugin-transform-duplicate-named-capturing-groups-regex
bun add --dev @babel/plugin-transform-duplicate-named-capturing-groups-regex
Uso
Mediante un archivo de configuración (Recomendado)
{
"plugins": ["@babel/plugin-transform-duplicate-named-capturing-groups-regex"]
}
Mediante la CLI
babel --plugins @babel/plugin-transform-duplicate-named-capturing-groups-regex script.js
Mediante la API de Node
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:
var stringRe = /(?:(?<quote>")|(?<quote>')).*?\k<quote>/;
stringRe.test("'foo'"); // "true", works
stringRe.exec("'foo'").groups.quote; // undefined
Puedes leer más sobre cómo configurar opciones de plugins aquí