2016-12-02 85 views
0

我想爲一個字符串值賦給一個javascript變量如下錯誤:指定字符串值越來越

<script> 

var iAmDone = 'asdasdaGRTPXqe1RWA8jikLwJSDc0lSNWCGA8NPioRhXlgxbQuTuxS6kkt3cA\nkDKp9/8zvA=='; 

</script> 

這種分配是打破從分配「\ n ',因此iAmDone中的值未被分配。當我看着控制檯,它顯示:

var iAmDone = 'asdasdaGRTPXqe1RWA8jikLwJSDc0lSNWCGA8NPioRhXlgxbQuTuxS6kkt3cA 
kDKp9/8zvA=='; **X error** 

我能做些什麼來讓瀏覽器瞭解\n不是一個新行,但一個字符串的一部分?

**我想補充 - 該值是一個編碼字符串,改變同是在我的腦海**

+5

Escape it! 'var iAmDone ='asdasdaGRTPXqe1RWA8jikLwJSDc0lSNWCGA8NPioRhXlgxbQuTuxS6kkt3cA \\ nkDKp9/8zvA ==';' – tymeJV

+0

該值是來自後端服務的加密值。如果我把一個額外的\它可能不會解密到相同的值。 –

+0

http://stackoverflow.com/questions/4253367/how-to-escape-a-json-string-containing-newline-characters-using-javascript –

回答

1

\n意味着新生產線的最後一件事,所以字符串'12 \ N34' 將被記錄爲:

'12 
34' 

要解決此問題,您需要「轉義」字符串。對於您的特定情況,您可以添加額外的\,IE '12\n34' - >'12\\n34'

更可擴展選項是使用JSON.stringify功能:

const s = `12\n34`; 
 
console.log('s: ', s); 
 

 
const stringified = JSON.stringify(s); 
 
console.log('stringified: ', stringified);

JSON.parse將字符串化的結果轉換恢復正常。