2014-09-18 35 views
7

我有一個字符串,它看起來是這樣的:逃生新線與JS

"Line 1\nLine 2" 

當我調用它的長度,但是,它的一個字符短:

"Line 1\nLine 2".length // 13 

尋找一點點接近:

"Line 1\nLine 2".charAt(6) 

我發現\n是由單個字符,它看起來像代替:

" 
" 

有沒有辦法將該新行轉換爲\n

回答

4

每當你得到Javascript來解釋這個字符串中,「\ n'將被渲染爲換行符(這是一個單個字符,因此是長度)。

要將該字符串用作文字反斜槓-n,請嘗試使用另一個字符轉義反斜槓。像這樣:

"Line 1\\nLine 2" 

如果你不能做到這一點創建字符串時,你可以把一個串到另一個與此:

"Line 1\nLine 2".replace(/\n/, "\\n"); 

如果可能的多次出現換行符,你可以通過使正則表達式全局一次得到它們,像這樣:

"Line 1\nLine 2\nLine 3".replace(/\n/g, "\\n"); 
+0

如果操作系統使用不同的換行符,則不起作用。 – 2016-02-03 13:53:03

+0

這不是我所觀察到的。 您能否提供重現您可能遇到的任何故障的步驟? 運行Javascript的環境將特定操作系統的底層實現細節抽象出來。確實隱喻有時會「泄漏」,但在這種情況下,Windows和Linux上的Firefox和Node都不會發生這種情況。 – 2016-02-03 16:49:01

+0

此功能:https://github.com/boris-marinov/monad-transformers/blob/master/tutorial/p3.js#L153 – 2016-03-03 15:17:10

4

\n是換行符。您可以使用"Line 1\\nLine 2"來轉義它。

請記住,一個新的生產線的實際表現取決於系統和可能很長一個或兩個字符:\r\n\n,或\r