Nesta sábado estava com um problema para fazer uma magia negra com NodeJS, precisava manipular um texto que seria publicado com código parecido com BBCode para identificar a posição de elementos (parecidos com widgets) que deveriam ser substituídos de acordo com seu tipo.
Para isso, precisava identificar o padrão [#tipo_id], como poderiam ser vários tipos de componentes (e como sempre o sistema pode crescer e novos tipos serem adicionados) a melhor forma de trabalhar com isso seria uma expressão regular com uma variável.
Antes eu tinha o seguinte:
var er = new RegExp(/\[#img_.*?\]/g);
var results = minhastring.match(er);
O que eu precisava era que o #img fosse uma variável para que esta rotina de busca e replace pudesse ser transformada em uma função parametrizada, o resultado final:
var er = new RegExp('\\['+ busca +'.*?\\]', 'g');
A sugestão do @knorrium em uma consultoria rápida pelo Twitter e sem saber exatamente o que eu precisava foi o uso do eval(), testei e funcionou, mas esta modo diferente de uso do new RegExp com dois parâmetros string que o @manuWell sugeriu ficou mais elegante.
E você, como faria uma Regexp com variável no javascript?