JavaScript字符串换行符?

给你一囗甜甜゛ 提交于 2020-02-27 06:47:12

\\n是否适用于所有平台的Java语言中的通用换行符序列? 如果不是,我如何确定当前环境的角色?

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


#1楼

是的,它是通用的。

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


#2楼

是的,请使用\\ n,除非要生成要在其中使用<br /> html代码。


#3楼

我相信是-当您使用JS字符串时。

但是,如果要生成HTML,则必须使用<br />标签(而不是\\n ,因为您不再使用JS了)


#4楼

我刚刚使用了一些愚蠢的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>

Windows上的IE8和Opera 9使用\\r\\n 。 我测试过的所有其他浏览器(Windows上的Safari 4和Firefox 3.5,Linux上的Firefox 3.0)都使用\\n 。 设置值时,它们都可以很好地处理\\n ,尽管IE和Opera会在内部再次将其转换回\\r\\n 。 有SitePoint文章,其中有更多详细信息,称为Java中的行尾

还要注意,这与HTML文件本身中的实际行尾无关( \\n\\r\\n给出相同的结果)。

提交表单时,所有浏览器都将URL编码中的换行符规范化为%0D%0A 。 为此,请加载例如data:text/html,<form><textarea name="foo">foo%0abar</textarea><input type="submit"></form>并按提交按钮。 (某些浏览器阻止了已提交页面的加载,但是您可以在控制台中看到URL编码的表单值。)

不过,我认为您真的不需要做任何决定。 如果只想在换行符上分割文本,则可以执行以下操作:

lines = foo.value.split(/\r\n|\r|\n/g);

#5楼

电子邮件链接功能我使用“%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>
标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!