2014-04-23 48 views
3

我有以下的正则表达式,如果我硬编码的值正常工作,如“富”:如何格式化包含变量的正则表达式?

/foo/ 

但是,如果“富”是一个变量是什么?如何为它编写正则表达式?例如:

var bar = "foo"; 

我无法获得/bar/的工作。当“bar”是一个变量时,我该如何格式化这个工作?

+0

你能告诉你究竟是如何使用这些?什么可行,哪些不行? –

+0

你的变量可以包含特殊的正则表达式变量吗?或*或+或{或}或(或)或[或]等等? – anubhava

回答

4

你需要使用正则表达式的新这样的:

var bar = "foo", 
    re = new RegExp(bar) 

bar.match(re) //returns ["foo"] 
+2

+1快速清除精确。 –

+0

谢谢@CasimiretHippolyte – bottens

+2

如果你有正则表达式保留的硬编码字符(例如''[','''''''''''''''''''''''''' ],'','?','*','+','('和')'),否则它们将作为它们的正则表达式等价。 “有牛奶吗?”例如会允许'有milz'(因为最后一个'k'是可选的),'r + a'将允许'rrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrr'。 – h2ooooooo