2011-11-15 100 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

相关问题