用JS逃脱新线

时间:2014-09-18 19:58:05

标签: javascript

我有一个看起来像这样的字符串:

"Line 1\nLine 2"

但是当我对它进行长度调用时,它只有一个字符:

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

仔细观察:

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

我发现\n被单个字符替换,如下所示:

"
"

有没有办法将新行转换为\n

3 个答案:

答案 0 :(得分:6)

每当您使用Javascript来解释此字符串时,' \ n'将被渲染为换行符(这是一个单个字符,因此也就是长度。)

要将字符串用作文字反斜杠-n,请尝试使用另一个反斜杠转义反斜杠。像这样:

"Line 1\\nLine 2"

如果在创建字符串时无法执行此操作,则可以使用以下内容将一个字符串转换为另一个字符串:

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

如果您可能多次出现换行符,可以通过将正则表达式设为全局来一次性获取它们,如下所示:

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

答案 1 :(得分:5)

\n是换行符。您可以使用"Line 1\\nLine 2"来逃避它。

请注意,新行的实际表示形式取决于系统,可能只有一个或两个字符:\r\n\n\r

答案 2 :(得分:0)

在JavaScript中,字符串文字中的反斜杠是escape code的开始,例如换行符的反斜杠n。但是,如果要在结果字符串中使用实际的反斜杠怎么办?转义代码之一是反斜杠反斜杠,表示实际的反斜杠。