Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/475.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 笨拙的逃逸角色_Javascript_Node.js_Mongoose_Escaping_Ejs - Fatal编程技术网

Javascript 笨拙的逃逸角色

Javascript 笨拙的逃逸角色,javascript,node.js,mongoose,escaping,ejs,Javascript,Node.js,Mongoose,Escaping,Ejs,在尝试console.log一个字符串时,我遇到了一个相当恼人的问题。我将字符串2^{\\frac{1}{2}}x=1存储在Node.js数据库中,但在输出时给出2^{rac{1}{2}}x=1。我预测了\f转义字符的问题,因此我添加了第二个\以转义该问题。但问题依然存在,我被困在如何解决这个问题上 查看Mongoose调试输出时,它清楚地将其正确存储在数据中: 它是这样分配的: contentHolder = "<%= testData.topics[i].questions[t].m

在尝试
console.log
一个字符串时,我遇到了一个相当恼人的问题。我将字符串
2^{\\frac{1}{2}}x=1
存储在Node.js数据库中,但在输出时给出
2^{rac{1}{2}}x=1
。我预测了
\f
转义字符的问题,因此我添加了第二个
\
以转义该问题。但问题依然存在,我被困在如何解决这个问题上

查看Mongoose调试输出时,它清楚地将其正确存储在数据中:

它是这样分配的:

contentHolder = "<%= testData.topics[i].questions[t].methods[p][0].content %>";
我明白了:

2^{rac{1}{2}}x=1

如果您在web浏览器中查看“源”,我想您会看到:

contentHolder = "<%= testData.topics[i].questions[t].methods[p][0].content %>";
当JS字符串文本被解释时,
\f
将被转换为表单提要字符,这显然不是您想要的

有多种方法可以尝试修复转义,但我认为我只需要使用
JSON.stringify

contentHolder = <%- JSON.stringify(testData.topics[i].questions[t].methods[p][0].content) %>;
contentHolder=;

在某些边缘情况下,这仍然不能正确地进行转义,但除非您输出用户输入的值,否则这不太可能成为问题。

在您回答之前,我已经修复了它,但您的答案与我修复它的方式差不多。
contentHolder = "2^{\frac{1}{2}}x=1";
contentHolder = <%- JSON.stringify(testData.topics[i].questions[t].methods[p][0].content) %>;