2017-10-07 128 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

我已經在你的答案之前解決了它,但你的答案几乎是我如何修復它的。 –