2017-10-07 63 views
0

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

当猫鼬调试输出它清楚地将其存储在数据正确地寻找: enter image description here

它是这样分配:

contentHolder = "<%= testData.topics[i].questions[t].methods[p][0].content %>"; 

然而,当我跑这条线:

console.log(contentHolder); 

我得到这个:

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

回答

1

如果您在Web浏览器中查看“来源”我想你会看到这个:

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) %>; 

可能会有一些边缘情况下,这仍然没有完全得到逸出正确的,但除非您输出的用户输入的值不太可能成为问题。

+0

我已经在你的答案之前解决了它,但你的答案几乎是我如何修复它的。 –