71 votes

Comment mettre une variable dans une correspondance d'expression régulière ?

J'ai l'extrait suivant. Je veux trouver l'apparence de a , mais cela ne fonctionne pas. Comment corriger la variable ?

 var string1 = 'asdgghjajakhakhdsadsafdgawerwweadf';
var string2 = 'a';
string1.match('/' + string2 + '/g').length;

101voto

user113716 Points 143363

Vous devez utiliser le constructeur RegExp au lieu d'un littéral regex.

 var string = 'asdgghjjkhkh';
var string2 = 'a';
var regex = new RegExp( string2, 'g' );
string.match(regex);

Si vous n'aviez pas besoin du modificateur global, vous pouvez simplement passer string2 , et .match() créera l'expression régulière pour vous.

 string.match( string2 );

0voto

Snowcat Points 135

Voici un autre exemple- //confirme si une chaîne contient une cible à sa fin (les deux sont des variables dans la fonction ci-dessous, par exemple, confirme si la chaîne "Abstraction" contient une cible "action" à la fin).

 function confirmEnding(string, target) {
    let regex = new RegExp(target);
    return regex.test(string);
};

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X