Maison > interface Web > js tutoriel > Comment cloner une expression régulière donnée en JavaScript ?

Comment cloner une expression régulière donnée en JavaScript ?

WBOY
Libérer: 2023-09-17 17:25:02
avant
1057 Les gens l'ont consulté

如何在 JavaScript 中克隆给定的正则表达式?

La prise en charge des expressions régulières par JavaScript est largement considérée comme l'une des meilleures au monde, mais elle présente un inconvénient : il n'existe aucun moyen intégré pour cloner une expression régulière. Cela peut devenir un problème lorsque vous devez créer une nouvelle expression régulière similaire à une expression régulière existante mais avec quelques modifications mineures.

Le problème est que les expressions régulières sont des objets, elles ne peuvent donc pas être copiées en attribuant simplement un objet à un autre. Considérez le code suivant -

var regex1 = /foo/;
var regex2 = regex1;
regex2 === regex1; // true
Copier après la connexion

Dans ce code, nous créons deux expressions régulières identiques. Mais que se passe-t-il si nous souhaitons apporter une petite modification à l’un d’entre eux ?

regex2 = /bar/;
regex1 === regex2; // false
Copier après la connexion

Maintenant, ces deux expressions régulières sont différentes, même si elles étaient au départ des copies l'une de l'autre. En effet, les expressions régulières sont mutables : elles peuvent être modifiées après leur création.

Cloner à l'aide d'expressions régulières

Une façon de cloner une expression régulière consiste à créer un nouveau littéral d’expression régulière similaire à un littéral d’expression régulière existant. Par exemple, si nous avons une expression régulière comme celle-ci -

var regex1 = /foo/;
Copier après la connexion
Copier après la connexion
Copier après la connexion

Nous pouvons créer une nouvelle expression régulière identique à celle-ci en utilisant un littéral d'expression régulière -

var regex2 = /foo/;
regex1 === regex2; // true
Copier après la connexion

Cette méthode est simple et directe, mais ne fonctionne que si l'expression régulière est un littéral (c'est-à-dire non créée à l'aide du nouveau constructeur RegExp()).

Cloner une expression régulière à l'aide du constructeur RegExp()

Une autre façon de cloner une expression régulière consiste à utiliser le constructeur RegExp(). Cela nous permet de créer une nouvelle expression régulière basée sur une expression régulière existante mais avec quelques modifications. Par exemple, si nous avons une expression régulière comme celle-ci -

var regex1 = /foo/;
Copier après la connexion
Copier après la connexion
Copier après la connexion

Nous pouvons créer une nouvelle expression régulière identique à celle-ci en utilisant le constructeur RegExp() -

var regex2 = new RegExp(regex1);
regex1 === regex2; // true
Copier après la connexion

Cette méthode est légèrement plus complexe que la précédente, mais elle présente l'avantage de pouvoir cloner des expressions régulières non littérales.

Pourquoi clone-t-on des expressions régulières ?

Le clonage d'expressions régulières présente certains avantages. Premièrement, cela vous fait gagner du temps si vous devez créer de nombreuses expressions régulières similaires. Deuxièmement, cela vous aide à éviter les erreurs si vous devez apporter des modifications mineures à une expression régulière existante. Enfin, cela peut rendre votre code plus lisible en donnant à l'expression régulière un nom descriptif.

Inconvénients du clonage d'expressions régulières

L'un des inconvénients du clonage d'une expression régulière est que cela rend le code plus complexe. Par exemple, si vous avez une expression régulière comme celle-ci -

var regex1 = /foo/;
Copier après la connexion
Copier après la connexion
Copier après la connexion

Et vous souhaitez créer une nouvelle expression régulière similaire à celle-ci, mais avec l'indicateur insensible à la casse, vous devez le faire -

var regex2 = new RegExp(regex1, 'i');
Copier après la connexion

C'est plus complexe que de simplement créer une nouvelle expression régulière avec le jeu d'indicateurs insensible à la casse -

var regex2 = /foo/i;
Copier après la connexion

En résumé, le clonage d'expressions régulières peut être un outil utile, mais il comporte certains compromis. Cela peut rendre votre code plus complexe, mais cela peut également vous faire gagner du temps et vous aider à éviter les erreurs.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:tutorialspoint.com
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal