大家好,又见面了,我是你们的朋友全栈君。
我刚刚用这段愚蠢的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`);
IE8和Opera 9在Windows上的使用\r\n..我测试过的所有其他浏览器(Windows上的Safari 4和Firefox 3.5,Linux上的Firefox 3.0)都使用\n..他们都能应付\n设置值时很好,尽管IE和Opera会将其转换回\r\n再一次在内部。有一篇包含更多细节的SitePoint文章Javascript中的行尾.
还请注意,这与HTML文件本身的实际行尾无关(都是\n和\r\n给出同样的结果)。
提交表单时,所有浏览器都会将换行符规范化为%0D%0A在URL编码中。要想看到这一点,请加载。data:text/html,
foo%0abar然后按下提交按钮。(有些浏览器阻止提交页面的加载,但您可以在控制台中看到URL编码的表单值。)
不过,我不认为你真的需要做太多的决定。如果只想在换行符上拆分文本,可以这样做:lines = foo.value.split(/\r\n|\r|\n/g);
发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/142202.html原文链接:https://javaforall.cn
【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛
【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...