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?
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));
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));