2014-09-18 62 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