2011-11-15 44 views
0

我正在嘗試使用正則表達式[javascript]來創建函數。將值傳遞給正則表達式

請看看。

function ReplaceIt(key) 
{ 
var KeyCode = /.body\s*\{([^\}]*?)\}/m; // i want to replace the body to the key 
} 

var key ="h1"; 
ReplaceIt(key); 

所以最終的結果將是

var Keycode = /.h1\s*\{([^\}]*?)\}/m; 

我有點新手用JavaScript,我不知道如何尋找其他資源。

Note:朋友,你爲什麼要刪除答案?每個評論/回答都有助於我們改進,但我們會選擇最合適/最佳的答案,請勿刪除評論/答案。

回答

3

您可以使用RegExp和一個字符串構建正則表達式。如果以這種方式構建正則表達式,則應該轉義所有'\'。所以你的功能可能看起來像:

function ReplaceIt(key) 
{ 
    return RegExp('.'+key+'\\s*\\{([^\\}]*?)\\}','m'); 
} 
var reKey = ReplaceIt('h1'); //=> /.h1\s*\{([^\}]*?)\}/m 
+0

有一些問題,這http://jsfiddle.net/jitheshkt/s2DJR/24/ – Red

+0

在你的jsfiddle,你也沒有逃脫「\」在'重新=新RegExp('。'+ key +'\ s * \ {([^ \}] *?)\}','m');'。使用're = new RegExp('。'+ key +'\\ s * \ {([^ \\}] *?)\\}','m')'; – KooiInc

+0

'錯誤: 第1行字符問題36:壞擒縱機構。 var re = RegExp('。'+'h'+'\\ s * \ {([^ \\}] *?)\\}','m');'' – Red

相關問題