gpt4 book ai didi

javascript - JavaScript 字符串换行符是什么?

转载 作者:行者123 更新时间:2023-11-28 06:37:44 31 4
gpt4 key购买 nike

\n JavaScript 中适用于所有平台的通用换行符序列?如果不是,我如何确定当前环境的字符?

我不是在询问 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>

Windows 上的 IE8 和 Opera 9 使用 \r\n 。我测试的所有其他浏览器(Windows 上的 Safari 4 和 Firefox 3.5,以及 Linux 上的 Firefox 3.0)均使用 \n 。他们都可以处理\n设置该值时就很好,尽管 IE 和 Opera 会将其转换回 \r\n再次内部。有一篇 SitePoint 文章,其中包含更多详细信息,名为 Line endings in Javascript .

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

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

不过,我认为您实际上不需要做太多决定。如果您只想在换行符上分割文本,您可以执行以下操作:

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

关于javascript - JavaScript 字符串换行符是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34122551/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com