Aller au contenu principal

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

Traduction Bêta Non Officielle

Cette page a été traduite par PageTurner AI (bêta). Non approuvée officiellement par le projet. Vous avez trouvé une erreur ? Signaler un problème →

info

Ce plugin est inclus dans @babel/preset-env, au sein de la spécification ES2018 NOTE : Ce plugin génère du code nécessitant les fonctionnalités des expressions régulières ES6. Si vous devez prendre en charge des navigateurs plus anciens, utilisez soit l'option runtime: false, soit importez un polyfill approprié (par exemple core-js).

Ce plugin transforme les littéraux d'expressions régulières pour prendre en charge les groupes de capture nommés. Il ne modifie pas le constructeur new RegExp, car ses arguments ne peuvent pas être pré-transformés statiquement : pour gérer le comportement à l'exécution des fonctions/classes, vous devrez utiliser un polyfill à la place.

Exemples

Entrée

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

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

Sortie

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

Installation

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

Utilisation

Avec un fichier de configuration (Recommandé)

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

Via CLI

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

Via l'API Node

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

Options

runtime

boolean, par défaut true

Lorsque cette option est désactivée, Babel n'encapsule pas les expressions régulières avec l'aide _wrapRegExp. Le résultat ne prend en charge que les références internes de groupes, et non les propriétés à l'exécution :

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

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

Vous pouvez en savoir plus sur la configuration des options de plugin ici