1

我正在尝试通过将字符串从 A 写入文件 B 来使用 javascript 文件 A(用 Node.js 编写)动态创建 javascript 文件.jsB。我想在 javascript 文件 B 中使用正则表达式。这需要我把A 中的字符串中 B 的正则表达式函数。但是,每当我使用反斜杠(转义字符)时,文件 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文件的内容。

我理解这个问题的措辞可能有点令人困惑。如果需要更多说明,请告诉我。

4

3 回答 3

1

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

于 2013-06-21T21:40:56.533 回答
0

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

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

于 2013-06-21T21:32:40.123 回答
0

有点彩票这个。我也不太明白你的问题。

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

var objRegEx = new RegExp( pattern, modifiers );

就像我说的,彩票......在黑暗中刺伤......

于 2013-06-21T21:37:45.347 回答