Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/37.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Html Nodejs中console.log函数中存在错误?_Html_Node.js_Newline_Linefeed - Fatal编程技术网

Html Nodejs中console.log函数中存在错误?

Html Nodejs中console.log函数中存在错误?,html,node.js,newline,linefeed,Html,Node.js,Newline,Linefeed,我在用Nodejs编写代码时意外地遇到了这种奇怪的bug现象 我从一个表单中获取输入,该表单由一系列ID组成, 用新行分隔,按Enter键 为了处理它们,我使用split函数将它们拆分为一个数组: var array = orig_input.split('\n'); 出于调试目的,我打印了它们 console.log('orig_input = ' + input); console.log('array = ' + array); 第一个奇怪的输出出现了: orig_input = 11

我在用Nodejs编写代码时意外地遇到了这种奇怪的bug现象

我从一个表单中获取输入,该表单由一系列ID组成, 用新行分隔,按Enter键

为了处理它们,我使用split函数将它们拆分为一个数组:

var array = orig_input.split('\n');
出于调试目的,我打印了它们

console.log('orig_input = ' + input);
console.log('array = ' + array);
第一个奇怪的输出出现了:

orig_input = 1111
2222
,2222
orig_input = 1111
2222
2222*******************************1111
看!假定的输出字符串“array=1111”被吞没

我的第一个想法是数组[0]有一些删除字符

因此,我更改代码以进行一些测试,如:

console.log('orig_input = ' + input);
console.log('***********************************' + array[0] + array[1]);
哇,又是一个奇怪的输出:

orig_input = 1111
2222
,2222
orig_input = 1111
2222
2222*******************************1111
好像有什么奇怪的东西

最后,经过一些无聊的测试和调试,结果证明

I used the wrong split character, it should be '\r\n', instead of '\n'
我们知道前者是新线的MS风格,后者是新线的*nix风格

所以问题是


HTML没有真正的换行符概念。然而,HTTP确实使用CR+LF。@Konrad Rudolph。谢谢你的澄清。我已经更改了标题。Node.js的行为在我看来是正确的。每个\r都会导致后面的字符从当前行的开头开始打印,这是一个回车符,覆盖了先前在那里打印的字符。这是您不明白的地方,还是有其他原因?看起来您复制/粘贴输出不正确,因为您的两个输出显示完全不同的行为,加上您的第二个示例没有,应该在数组元素之间,但您的第一个示例有。@Aaron Dufour打印数组时,它会为您添加。