web-dev-qa-db-fra.com

Comment passer une variable en regex dans jQuery / Javascript

Existe-t-il un moyen de passer une variable dans une expression régulière dans jQuery/Javascript?

Je veux faire quelque chose comme:

var variable_regex = "bar";
var some_string = "foobar";

some_string.match(/variable_regex/);

En Ruby vous pourriez faire:

some_string.match(/#{variable_regex}/)

Trouvé un poste utile:

Comment puis-je concaténer des littéraux d'expression régulière en JavaScript?

42
cinematic

C'est facile:

var variable_regex = "bar";
var some_string = "foobar";

some_string.match(variable_regex);

Perdez juste le //. Si vous souhaitez utiliser des expressions rationnelles complexes, vous pouvez utiliser la concaténation de chaînes:

var variable_regex = "b.";
var some_string = "foobar";

alert (some_string.match("f.*"+variable_regex));
24
user181548

Javascript ne prend pas en charge l'interpolation comme Ruby - vous devez utiliser le constructeur RegExp:

var aString = "foobar";
var pattern = "bar";

var matches = aString.match(new RegExp(pattern));
60