Question

Y at-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/);

Dans Ruby vous seriez en mesure de le faire:

some_string.match(/#{variable_regex}/)

trouvé un message utile:

Comment puis-je concaténer littéraux regex en JavaScript?

Était-ce utile?

La solution 2

Il est facile:

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

some_string.match(variable_regex);

Il suffit de perdre le //. Si vous souhaitez utiliser des expressions rationnelles complexes, vous pouvez utiliser la concaténation de chaîne:

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

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

Autres conseils

Javascript ne fonctionne pas avec interpolation comme Ruby - vous devez utiliser le constructeur RegExp:

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

var matches = aString.match(new RegExp(pattern));
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top