从节点事件process.stdin.on(“data”)收到的数据中删除新行字符
我一直在寻找这个答案,但无论使用什么方法,似乎都不会在我的string结尾处切断换行符。
这里是我的代码,我试图使用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
对象来testing它。 这是我的结果:
hi user typed: hi hi hi
正如你所看到的,在每个str
之间还有新的行字符被读取。 我已经尝试了str.replace()
的一些其他参数,但似乎没有工作在摆脱新的行字符。
你正在调用string.replace
而不分配任何地方的输出。 该函数不会修改原始string – 它会创build一个新的string – 但是您不存储返回的值。
尝试这个:
... str = str.replace(/\r?\n|\r/g, " "); ...
但是,如果您实际上要删除input周围的所有空格(不是最后的换行符),则应该使用trim
:
... str = str.trim(); ...
它可能会更高效,因为它已经在Node.js二进制文件中实现了。
你正在试图在没有更新的情况下输出str
的值。 你应该做到这一点
str = str.replace(/\r?\n|\r/g, " ");
在控制台输出前。
您需要将数据转换为JSON格式。 JSON.parse(data)将删除所有新的行字符,并保留JSON格式的数据。
- 如何使用supertesttestingPOST请求参数Express应用程序?
- 如何使用id-aes256-GCM与Node.JSencryption? “TypeError:DecipherFinal失败”
- cookieparsing器中的秘密集和会话在express.js中存储相同的东西?
- 如何获得仅GYdate格式为YYYY / MM / DD?
- 如果没有req.session.save(),会话将不会保存在Node.js中
- TypeError:无法读取未定义的属性“长度”?
- 节点检查员与Express 4
- 如何将会话variables从express / node传递给angular?
- 快递摩根。 logging到内部对象