什么是JavaScript字符串换行符? [英] What is the JavaScript string newline character?

查看:24
本文介绍了什么是JavaScript字符串换行符?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

是所有平台上的统一换行字符序列吗?如果不是,我如何确定当前环境的字符?

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

推荐答案

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

数据-lang="js"数据-隐藏="假"数据-控制台="真"数据-巴贝尔="假">
function log_newline(msg, test_value) {
  if (!test_value) { 
    test_value = document.getElementById('test').value;
  }
  console.log(msg + ': ' + (test_value.match(/
/) ? 'CR' : '')
              + ' ' + (test_value.match(/
/) ? 'LF' : ''));
}

log_newline('HTML source');
log_newline('JS string', "foo
bar");
log_newline('JS template literal', `bar
baz`);
<textarea id="test" name="test">

</textarea>

Windows上的IE8和Opera 9使用 。我测试的所有其他浏览器(Windows上的Safari 4和Firefox 3.5,以及Linux上的Firefox 3.0)都使用 。它们在设置值时都可以很好地处理 ,尽管IE和Opera会在内部再次将其转换回 。有一篇名为Line endings in Javascript的SitePoint文章介绍了更多细节。

还请注意,这与HTML文件本身中的实际行尾无关( 都会得到相同的结果)。

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

我不认为你真的需要做太多的决定。如果您只想在换行符上拆分文本,可以这样做:

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

这篇关于什么是JavaScript字符串换行符?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆