在尝试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
最佳答案
如果您在网络浏览器中查看“源代码”,我想您会看到以下内容:
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) %>;
可能在一些边缘情况下,这仍然不能完全正确地转义,但除非您输出用户输入的值,否则这不太可能成为问题。
关于javascript - 尴尬的逃脱角色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46620563/