313 votes

Javascript Regex : Comment mettre une variable à l'intérieur d'une expression régulière ?

Donc par exemple :

function(input){
    var testVar = input;
    string = ...
    string.replace(/ReGeX + testVar + ReGeX/, "replacement")
}

Mais cela ne fonctionne bien sûr pas :) Y a-t-il un moyen de le faire ?

99voto

steinar Points 4762

Vous pouvez utiliser l'objet RegExp :

var regexstring = "whatever";
var regexp = new RegExp(regexstring, "gi");
var str = "whateverTest";
var str2 = str.replace(regexp, "other");
document.write(str2);

Ensuite, vous pouvez construire regexstring de la façon que vous voulez.

Vous pouvez en savoir plus à ce sujet ici.

7voto

shunryu111 Points 4667

si vous utilisez es6 template literals sont une option...

string.replace(new RegExp(`ReGeX${testVar}ReGeX`), "replacement")

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