我一直在寻找这个问题的答案,但无论我使用什么方法,似乎都无法切断字符串末尾的换行符。
这是我的代码,我尝试使用 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
对象三次以对其进行测试。这是我的结果:
hi
user typed: hi
hi
hi
如您所见,在每个 str
之间仍然有换行符被读取。我在 str.replace()
中尝试了一些其他参数,但似乎无法消除换行符。
最佳答案
您正在调用 string.replace
而没有在任何地方分配输出。该函数不会修改原始字符串 - 它会创建一个新字符串 - 但您不会存储返回值。
试试这个:
...
str = str.replace(/\r?\n|\r/g, " ");
...
但是,如果您真的想从输入周围删除 所有 空格(不仅仅是末尾的换行符),您应该使用 trim
:
...
str = str.trim();
...
它可能会更有效率,因为它已经在 Node.js 二进制文件中实现。
关于javascript - 从 Node 事件 process.stdin.on ("data"收到的数据中删除换行符),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20794241/