Cómo pasar una variable a regex en jQuery / Javascript


¿Hay alguna forma de pasar una variable a una expresión regular en jQuery/Javascript?

Quiero hacer algo como:

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

some_string.match(/variable_regex/);

En Ruby podrías hacer:

some_string.match(/#{variable_regex}/)

Encontró un mensaje útil:

¿Cómo puedo concatenar literales regex en JavaScript?

Author: Community, 2009-11-08

2 answers

Javascript no soporta interpolación como Ruby you tienes que usar el constructor RegExp:

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

var matches = aString.match(new RegExp(pattern));
 51
Author: Jonathan Lonowski,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2009-11-08 07:17:10

Es fácil:

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

some_string.match(variable_regex);

Acaba de perder el //. Si desea utilizar expresiones regulares complejas, puede utilizar la concatenación de cadenas:

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

alert (some_string.match("f.*"+variable_regex));
 19
Author: ,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2009-11-08 07:39:27