我试图通过将一个字符串从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
文件的内容。
我理解这个问题的措辞可能会有些混乱。如果需要进一步澄清,请告诉我。
答案 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 );
就像我说的那样,乐透......在黑暗中刺伤......