javascript - 从 Node 事件 process.stdin.on ("data"收到的数据中删除换行符)

标签 javascript regex node.js

我一直在寻找这个问题的答案,但无论我使用什么方法,似乎都无法切断字符串末尾的换行符。

这是我的代码,我尝试使用 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/

相关文章:

javascript - 我什么时候应该使用 yield 什么时候使用 yield* 与 Koa.js

javascript - 使用 v-for 填充组件的 Vuex getter

javascript - 如果我不在 javascript 中的变量中分配新图像会发生什么

python - 为什么这个正则表达式找不到结果

objective-c - NSPredicate 与正则表达式来检查字母数字

javascript - Sails.js 正则表达式路由

javascript - 渲染具有多个子集合的集合

Javascript 在 HTML 中设置 ID 的值

javascript - 正则表达式消除一个单词

performance - 来自 NodeJS 的多个后端非阻塞调用导致响应缓慢