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?