2014-10-07 35 views
0

我已經創建了一個正則表達式,其中包含一個動態傳遞的變量。如何將選項添加到JavaScript RegExp對象

new RegExp("(" + variable_name + ":\\((.*?)\\))"); 

它完美地導致/(ABC:\((.*?)\))/(如果變量名是ABC)

但是,如果我通過一個選項爲

new RegExp("(" + variable_name + ":\\((.*?)\\))") + "g"

它給我以字符串格式

正則表達式

"/(ABC:\((.*?)\))/g"

和match()函數失敗。有沒有什麼好的方法來傳遞選項而不將表達式轉換爲字符串。

+0

謝謝你的答案。很好的回答一個愚蠢的問題。 :( – Abhi 2014-10-07 11:12:37

+0

沒有必要的聲望upvote所有答案。: - | – Abhi 2014-10-07 11:42:36

回答

2

您需要在括號內包含g(全局修飾符)。

new RegExp("(" + variable_name + ":\\((.*?)\\))", "g"); 
2

使用本:

new RegExp("(" + variable_name + ":\\((.*?)\\))", "g"); 
1

可以包括任何你需要的選項:

var options = "g"; //g, m, i, or combination of them 
new RegExp("(" + variable_name + ":\\((.*?)\\))", options); 

希望它是非常有用的!