2014-04-23 49 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