Javascript 将值传递给正则表达式
我正在尝试用正则表达式[javascript]生成一个函数 请看一看Javascript 将值传递给正则表达式,javascript,regex,string,Javascript,Regex,String,我正在尝试用正则表达式[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的新手,不知道如何搜索其
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的新手,不知道如何搜索其他资源
注意
:朋友们,为什么要删除答案??每个注释/答案都在帮助我们改进,但我们会选择最合适/最好的答案,请不要删除注释/答案。您可以使用带有字符串的RegExp
来构建正则表达式。如果以这种方式构建正则表达式,则应转义所有“\”。因此,您的函数可以如下所示:
function ReplaceIt(key)
{
return RegExp('.'+key+'\\s*\\{([^\\}]*?)\\}','m');
}
var reKey = ReplaceIt('h1'); //=> /.h1\s*\{([^\}]*?)\}/m
可以将
RegExp
与字符串一起使用来构建正则表达式。如果以这种方式构建正则表达式,则应转义所有“\”。因此,您的函数可以如下所示:
function ReplaceIt(key)
{
return RegExp('.'+key+'\\s*\\{([^\\}]*?)\\}','m');
}
var reKey = ReplaceIt('h1'); //=> /.h1\s*\{([^\}]*?)\}/m
在JSFIDLE中,您没有在
re=newregexp('.+key+'\s*\{([^\}]*?)\},'m')中转义'\'代码>。使用re=newregexp('.+key+'\\s*\{([^\}]*?)\\}','m')
<代码>错误:第1行出现问题字符36:擒纵机构不良。var re=RegExp('.'+'h'+'\\s*\{([^\}]*?)\\}','m')在JSFIDLE中,您没有在re=newregexp('.+key+'\s*\{([^\}]*?)\},'m')中转义'\'代码>。使用re=newregexp('.+key+'\\s*\{([^\}]*?)\\}','m')
<代码>错误:第1行出现问题字符36:擒纵机构不良。var re=RegExp('.'+'h'+'\\s*\{([^\}]*?)\\}','m')代码>