虽然尝试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 %>";
然而,当我跑这条线时:
console.log(contentHolder);
我明白了:
2^{rac{1}{2}}x=1
答案 0 :(得分:1)
如果你在网络浏览器中查看“来源”,我想你会看到这个:
contentHolder = "<%= testData.topics[i].questions[t].methods[p][0].content %>";
会生成这个:
contentHolder = "2^{\frac{1}{2}}x=1";
当解释JS字符串文字时,\f
将被转换为换页符,这显然不是你想要的。
有多种方法可以尝试修复转义,但我想我只是使用JSON.stringify
:
contentHolder = <%- JSON.stringify(testData.topics[i].questions[t].methods[p][0].content) %>;
可能存在一些边缘情况,这仍然不能完全逃脱,除非您输出的用户输入的值不太可能是一个问题。