これに対する答えを探していましたが、どの方法を使用しても、文字列の最後の改行文字が途切れないようです。
これが私のコードです。str.replace()
を使用して改行文字を削除しようとしました。これは、この問題の標準的な回答のようです。
_process.stdin.on("data", function(data) {
var str;
str = data.toString();
str.replace(/\r?\n|\r/g, " ");
return console.log("user typed: " + str + str + str);
});
_
それをテストするために、コンソール出力でstr
オブジェクトを3回繰り返しました。これが私の結果です:
_hi
user typed: hi
hi
hi
_
ご覧のとおり、各str
の間にはまだ改行文字が読み取られています。私はstr.replace()
で他のいくつかのパラメーターを試しましたが、改行文字を取り除くのに何も機能しないようです。
出力をどこにも割り当てずにstring.replace
を呼び出しています。関数は元の文字列を変更しません-新しい文字列を作成します-戻り値を保存していません。
これを試して:
...
str = str.replace(/\r?\n|\r/g, " ");
...
ただし、入力の周りからallの空白を(最後の改行文字だけでなく)実際に削除する場合は、 trim
:
...
str = str.trim();
...
Node.jsバイナリにすでに実装されているため、より効率的です。
更新せずにstr
の値をコンソール出力しようとしました。あなたはこれをしたはずです
str = str.replace(/\r?\n|\r/g, " ");
コンソール出力の前。