将正则表达式放在字符串中

时间:2013-06-21 21:20:36

标签: javascript html regex node.js escaping

我试图通过将一个字符串从A写入.js文件B,使用javascript文件A(用Node.js编写)动态创建一个javascript文件B.我想在javascript中使用正则表达式这需要我将B的正则表达式函数放在A中的字符串中。但是,每当我使用反斜杠(转义字符)时,文件A立即解释正则表达式函数,而不是将其作为字符串处理。

一些有助于理解我的问题的代码:

var mongodata = "Some String with square and curly brackets ]}{]]},]},}{}{{}},{[[][,][,";
mongodata = 'var mongodata = ' + mongodata + ';\n function setData(){mongodata = mongodata.replace(/\[ /g,"").replace(/\] \},/g,"</td></tr>").replace(/\] \}/g,"</td></tr>"); document.getElementById("mongodata").innerHTML = mongodata;}';

mongodata字符串旨在用作动态创建的.js文件的内容。

我理解这个问题的措辞可能会有些混乱。如果需要进一步澄清,请告诉我。

3 个答案:

答案 0 :(得分:1)

在字符串中,就像\n字符一样,正在评估所有其他反向表达式,因此必须转义反斜杠。换句话说,编写一个输出RegExp的RegExp。转义反斜杠本身的正确方法是\\\,但您可能还需要转义其他字符以阻止其评估。

答案 1 :(得分:0)

也许我误解了你的问题,但也许把字符串分配给mongodata在转义引号中:

var mongodata = "\'Some String with square and curly brackets ]}{]]},]},}{}{{}},{[[][,][,\'";

答案 2 :(得分:0)

这一点的乐透。我也不太明白你的问题。

您可以转义所有RegEx特殊字符(。*?[] Etc)。您还可以使用以下命令动态创建RegEx运算符:

var objRegEx = new RegExp( pattern, modifiers );

就像我说的那样,乐透......在黑暗中刺伤......