JavaScript字符串换行符?

JavaScript字符串换行符?,javascript,newline,Javascript,Newline,\n是Javascript中所有平台的通用换行符序列吗?如果不是,如何确定当前环境的角色 我不是问HTML换行符元素()。我在询问JavaScript字符串中使用的换行符序列。是的,它是通用的 尽管'\n'是通用换行符,但您必须记住,根据您的输入,换行符前面可能有回车符('\r')。是使用\n,除非生成html代码,当您使用JS字符串时,您想在其中使用我相信是这样的 但是,如果您正在生成HTML,您将不得不使用标记(而不是\n,因为您不再处理JS)我刚刚测试了一些浏览器,它们使用了这一愚蠢的Ja

\n
是Javascript中所有平台的通用换行符序列吗?如果不是,如何确定当前环境的角色

我不是问HTML换行符元素(

)。我在询问JavaScript字符串中使用的换行符序列。

是的,它是通用的


尽管
'\n'
是通用换行符,但您必须记住,根据您的输入,换行符前面可能有回车符(
'\r'
)。

是使用\n,除非生成html代码,当您使用JS字符串时,您想在其中使用

我相信是这样的


但是,如果您正在生成HTML,您将不得不使用

标记(而不是
\n
,因为您不再处理JS)

我刚刚测试了一些浏览器,它们使用了这一愚蠢的JavaScript:

函数日志\u换行符(消息,测试值){
如果(!测试值){
test_value=document.getElementById('test').value;
}
console.log(msg+':'+(test_value.match(/\r/)?'CR':'')
+''+(测试值匹配(/\n/)?'LF':'');
}
log_newline(“HTML源”);
log_newline('JS string','foo\nbar');
log_新行('JS template literal','bar
baz`)


对于我遇到的所有情况,
\n
都很好。如果您正在使用web,请使用
\n
,不要担心它(除非您有任何与换行有关的问题)。

我在用\n\r\n
神奇的是,用于回车的字符\r对我来说就像一个换行符。

因此,在某些情况下,考虑\r也是有用的。

< P>获取当前浏览器的行分隔符:

function getLineSeparator() {
  var textarea = document.createElement("textarea");
  textarea.value = "\n"; 
  return textarea.value;
}

处理新行字符的所有大小写可能是最简单的,而不是检查哪个大小写然后应用它。例如,如果需要替换换行符,请执行以下操作:

htmlstring = stringContainingNewLines.replace(/(\r\n|\n|\r)/gm, "<br>");
htmlstring=stringContainingNewLines.replace(/(\r\n |\n |\r)/gm,“
”;
我使用的电子邮件链接功能“%0D%0A”

[HTML]

<a href="#" onClick="sendMail()">Contact Us</a>

注意事项-使用ExtendScript JavaScript(Photoshop CS3+等应用程序中使用的Adobe脚本语言)时,要使用的字符是“\r”。“\n”将被解释为字体字符,因此许多字体将改为块字符

例如(要选择名为“Note”的图层并在所有句点后添加换行符):


您可以使用

document.write/
document.writeln
一个

不要使用“\n”。试试这个:

var string = "this\
is a multi\
line\
string";
只要进入一个反斜杠,继续前进!工作起来很有魅力。

您可以在ES6中使用``引号(在Esc按钮下面)。所以你可以这样写:

var text = `fjskdfjslfjsl
skfjslfkjsldfjslfjs
jfsfkjslfsljs`;
印刷品:

Welcome!
Your balance is currently $1000 and your interest rate is 1%.

一个实际的观察。。。在我的NodeJS脚本中,我具有以下功能:

function writeToLogFile (message) {
    fs.appendFile('myserverlog.txt', Date() + " " + message + "\r\n", function (err) {
        if (err) throw err;
    });
}

首先,我只有“\n”,但我注意到,当我在记事本中打开日志文件时,它会在同一行显示所有条目。另一方面,Notepad++在各自的行上显示条目。将代码更改为“\r\n”后,即使记事本也会在自己的行中显示每个条目。

\n是通用换行符(LF)。确切的换行字节序列取决于平台(\r\n、\n或:)。这就是兰登要问的问题。当您第一次说它是通用换行符,然后说它前面可能有一个CR时,您自相矛盾。它是哪一个?\n是换行符(换行符),即使它前面有回车符。CR永远不应该单独使用,尽管大多数Windows API和应用程序都会将其作为新行进行解析。LF在Windows中也同样适用。CR只是计算机仅仅是电子打字机时代的产物。@GolezTrol有充分的理由单独使用CR。例如,在控制台窗口中返回到行的开头以覆盖该行,而不移动到下一行。这通常用于在命令行实用程序中写入不断变化的进度百分比指示器。@Dan感谢您的反馈。当然,我绝对不应该说“决不”,因为事实上,CR本身就有申请。但问题在于Javascript,而不是命令行实用程序。当然,可能会有一个脚本在CLI模式下运行(尽管我不知道CR是否会像您当时所说的那样工作),您甚至可以使用Javascript生成一个在命令行中运行的脚本。这些可能是该规则的例外情况,但就问题而言,它们似乎并不适用。不过,谢谢你提到它。我有一个多行输入控件,希望用户输入一个换行分隔的列表。我需要首先在换行符上拆分字符串来解析列表。@landon9720:对于我的多行输入控件,我有一个
getValue
函数,它接受
值并返回
值。replace(/\r\n/g,“\n”)
-只是为了在不同浏览器/平台之间保持输出的一致性。这是一个好问题,特别是对于那些编程新手来说!在HTML和JavaScript之外,最好知道如何跳转到下一行/新行?在结果上使用
JSON.stringify
会改变字符吗?如果我尝试在
alert()
调用中查看结果,它不会向我显示字符,除非我首先对其进行字符串化(当然,字符不需要人类可读才能有效),但我必须使用全局标志:/\r\n | \r\n/g@Edson错误,因为它将
\r\n
视为两个换行符,而不是一个换行符。如果你想简短一点,
/\r?\n/g
可能就可以了(到底谁还在使用Mac OS 9?)
printAccountSummary: function()
        {return "Welcome!" + "\n" + "Your balance is currently $1000 and your interest rate is 1%."}
};
console.log(savingsAccount.printAccountSummary()); // method
Welcome!
Your balance is currently $1000 and your interest rate is 1%.
function writeToLogFile (message) {
    fs.appendFile('myserverlog.txt', Date() + " " + message + "\r\n", function (err) {
        if (err) throw err;
    });
}