⊗jsSpREStri 134 of 294 menu

Chaîne avec une expression régulière en JavaScript

Les expressions régulières peuvent être représentées sous forme de chaînes. C'est pratique dans le cas où vous avez besoin de faire des insertions de variables dans les regex, ou de les former dynamiquement.

Regardons un exemple. Supposons que nous ayons la chaîne suivante :

let str = 'img.png';

Supposons que nous appliquions à cette chaîne l'expression régulière suivante :

let reg = /\.(png|jpg)$/; let res = str.match(reg);

Réécrivons cette expression régulière sous forme de chaîne. Cela se fait à l'aide de l'objet spécial RegExp :

let reg = new RegExp('\.(png|jpg)$'); let res = str.match(reg);

Maintenant, mettons une partie de la regex dans une variable et insérons-la en utilisant la concaténation :

let pat = 'png|jpg'; let reg = new RegExp('\.(' + pat + ')$'); let res = str.match(reg);

Et maintenant, insérons la variable en utilisant des littéraux de gabarits (template strings) :

let pat = 'png|jpg'; let reg = new RegExp(`\.(${pat})$`); let res = str.match(reg);

Et maintenant, formons une partie de la regex à partir d'un tableau :

let exts = ['png', 'jpg']; let pat = exts.join('|'); let reg = new RegExp(`\.(${pat})$`); let res = str.match(reg);

Problèmes pratiques

Extrayez les noms des zones de domaine dans une variable séparée :

let reg = /^[a-z]+\.(ru|by|ua)$/; let res = reg.test(str);

Modifiez le problème précédent en tenant compte du fait que les zones de domaine sont stockées sous forme de tableau :

let arr = ['ru', 'by', 'ua'];
swesbymsru