JavaScript字符串换行符?

在所有平台的Javascript是\n的通用换行字符序列? 如果不是,我如何确定当前环境的特征?

我不问有关HTML换行元素( <BR/> )。 我正在问JavaScript字符串中使用的换行字符序列。

我刚刚测试了几个浏览器使用这个愚蠢的JavaScript:

 function log_newline(msg, test_value) { if (!test_value) { test_value = document.getElementById('test').value; } console.log(msg + ': ' + (test_value.match(/\r/) ? 'CR' : '') + ' ' + (test_value.match(/\n/) ? 'LF' : '')); } log_newline('HTML source'); log_newline('JS string', "foo\nbar"); log_newline('JS template literal', `bar baz`); 
 <textarea id="test" name="test"> </textarea> 

是的,这是普遍的。

虽然'\n'是通用换行符 ,但是您必须记住,根据您的输入,换行符可能会以回车符( '\r''\r'

处理新行字符的所有情况可能是最简单的,而不是检查哪种情况下应用它。 例如,如果您需要替换换行符,请执行以下操作:

 htmlstring = stringContainingNewLines.replace(/(\r\n|\n|\r)/gm, "<br>"); 

不要使用\ n,只要试试这个:

  var string = "this\ is a multi\ line\ string"; 

只需输入一个反斜杠,并继续卡车'! 奇迹般有效。

是的使用\ n,除非你生成的HTML代码,你想使用<br />

电子邮件链接功能我使用“%0D%0A”

 function sendMail() { var bodydata="Before "+ "%0D%0A"; bodydata+="After" var MailMSG = "mailto:aaa@sss.com" + "?cc=07@sss.com" + "&subject=subject" + "&body=" + bodydata; window.location.href = MailMSG; } 

[HTML]

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

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

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

注意 – 当使用ExtendScript JavaScript(Adobe Photoshop CS3 +等应用程序中使用的Adobe Scripting语言)时,要使用的字符是“\ r”。 “\ n”将被解释为字体字符,因此许多字体将具有块字符。

例如(要选择一个名为“注意”的图层,并在所有时段之后添加换行符):

 var layerText = app.activeDocument.artLayers.getByName('Note').textItem.contents; layerText = layerText.replace(/\. /g,".\r"); 

在对上述尼利的回应(我不能评论,没有足够的声望):

任何人都知道这种类型的代码为tab键? 我尝试了“%0D%09”但不工作。 – 尼利9月26日在13:57

Tab是一个单独的字符,所以如果你只是尝试%09,它应该没问题。 查看单个字符代码的示例:

 var output = ""; var s="aaa\tbbb\tccc"; for (var i = 0; i < s.length; i++) { output += "i=" + i + " charAt=" + s.charAt(i) + " charCodeAt=" + s.charCodeAt(i) + "\n"; } console.log(output); 

我遇到了用\ n\ r \ n表示换行符的问题。
神奇的是,用于回车的字符就像换行符一样适用于我。
所以在某些情况下,考虑\ r也是有用的。

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

 var text = `fjskdfjslfjsl skfjslfkjsldfjslfjs jfsfkjslfsljs`; 

我相信这是 – 当你使用JS字符串。

如果你正在生成HTML,你将不得不使用<br />标签(而不是\n ,因为你不再处理JS)

\n对于我所遇到的所有情况都很好。 我正在使用网络,使用\n ,不用担心它(除非你有任何换行相关的问题)。

你可以使用<br/>document.write/ <br/>之一。