Saltar al contenido principal

@babel/plugin-transform-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, dentro de ES2018 NOTA: Este plugin genera código que requiere funcionalidades de expresiones regulares de ES6. Si necesitas dar soporte a navegadores antiguos, utiliza la opción runtime: false o importa un polyfill adecuado (por ejemplo, core-js).

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

Ejemplos

Entrada

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

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

Salida

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

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

Instalación

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

Uso

Mediante un archivo de configuración (Recomendado)

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

Mediante la CLI

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

Mediante la API de Node

JavaScript
require("@babel/core").transformSync("code", {
plugins: ["@babel/plugin-transform-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>"|').*?\k<quote>/;

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

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