Javascript Regexp génération dynamique à partir de variables?



Answers

Utilisez le ci-dessous:

var regEx = new RegExp(pattern1+'|'+pattern2, 'gi');

str.match(regEx);
Question

Cette question a déjà une réponse ici:

Comment construire deux motifs regex en un seul?

Par exemple j'ai un motif long et un plus petit, je dois mettre plus petit devant un long.

var pattern1 = ':\(|:=\(|:-\(';
var pattern2 = ':\(|:=\(|:-\(|:\(|:=\(|:-\('
str.match('/'+pattern1+'|'+pattern2+'/gi');

Cela ne fonctionne pas. Quand je concatène des chaînes, toutes les barres obliques ont disparu.




Le constructeur RegExp crée un objet d'expression régulière pour le texte correspondant avec un motif.

    var pattern1 = ':\\(|:=\\(|:-\\(';
    var pattern2 = ':\\(|:=\\(|:-\\(|:\\(|:=\\(|:-\\(';
    var regex = new RegExp(pattern1 + '|' + pattern2, 'gi');
    str.match(regex);

Le code ci-dessus fonctionne parfaitement pour moi ...




Links