1

Nodejs でコードを書いているときに、この奇妙なバグのある現象に偶然遭遇しました。

改行で区切られた一連の ID で構成されるフォームから入力を取得します(Enter キーを押します)。

それらを処理するには、split関数を使用してそれらを配列に分割します。

var array = orig_input.split('\n');

デバッグ目的で、それらを印刷します。

console.log('orig_input = ' + input);
console.log('array = ' + array);

さて、ここに最初の奇妙な出力があります:

orig_input = 1111
2222
,2222

見て!想定される出力文字列'array = 1111'が飲み込まれます!

私の最初の考えは、array[0]にいくつかの削除文字があることです。

そこで、次のようないくつかのテストを行うようにコードを変更します。

console.log('orig_input = ' + input);
console.log('***********************************' + array[0] + array[1]);

うわー、さらに別の奇妙な出力:

orig_input = 1111
2222
2222*******************************1111

変なラップか何かがあるようです。

そして最後に、退屈なテストとデバッグの後、

I used the wrong split character, it should be '\r\n', instead of '\n'

前者がMS系の新線、後者が*nix系の新線であることがわかっています。

だから質問は

Is this a bug of console.log function in **Nodejs** ?

Anyone would explain this?
4

0 に答える 0