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/>
之一。