我有一个类似于这样的字符串:
"Line 1\nLine 2"
然而,当我对它调用长度时,它会少一个字符:
"Line 1\nLine 2".length // 13
仔细观察:
"Line 1\nLine 2".charAt(6)
我发现\n
被替换成了一个单独的字符,看起来像这样:
"
"
有没有一种方法可以将换行符转义为 \n
?我有一个类似于这样的字符串:
"Line 1\nLine 2"
然而,当我对它调用长度时,它会少一个字符:
"Line 1\nLine 2".length // 13
仔细观察:
"Line 1\nLine 2".charAt(6)
我发现\n
被替换成了一个单独的字符,看起来像这样:
"
"
有没有一种方法可以将换行符转义为 \n
?"Line 1\\nLine 2"
如果您在创建字符串时无法这样做,可以使用以下方法将一个字符串转换为另一个字符串:
"Line 1\nLine 2".replace(/\n/, "\\n");
如果您可能有多个换行符的情况,可以通过将正则表达式设置为全局来一次性获取它们,就像这样:
"Line 1\nLine 2\nLine 3".replace(/\n/g, "\\n");
\n
是换行符。您可以使用 "Line 1\\nLine 2"
进行转义。
请注意,实际的换行符取决于系统并且可能是一个或两个字符长:\r\n
、\n
或 \r
\r
都不被用作换行符号,它是回车字符而不是换行符或者换行字符。Windows 使用 \r\n
,Unix 系统仅使用 \n
。 - Ɗααɳιടԋ Sყҽԃ\n
。 - KHAYRI R.R. WOULFE如果有人和我一样,来到这里是为了取消转义换行符而不是转义它们,那么这是我的解决方案。
'Line1\\n\\nLine2'.replace(/\\n/g, '\n')
作为工具函数
const unescapeNewLine = (str) => str.replace(/\\n/g, '\n')