【问题标题】:Remove new line characters from data recieved from node event process.stdin.on("data")从节点事件 process.stdin.on("data") 接收的数据中删除换行符
【发布时间】:2013-12-27 03:17:18
【问题描述】:

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

这是我的代码,我尝试使用 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() 中尝试了一些其他参数,但似乎没有任何效果可以去除换行符。

【问题讨论】:

    标签: javascript regex node.js


    【解决方案1】:

    您正在调用string.replace 而不在任何地方分配输出。该函数不会修改原始字符串 - 它会创建一个新字符串 - 但您不会存储返回的值。

    试试这个:

    ...
    str = str.replace(/\r?\n|\r/g, " ");
    ...
    

    但是,如果您真的想从输入周围删除 所有 空格(不仅仅是末尾的换行符),您应该使用trim

    ...
    str = str.trim();
    ...
    

    它可能会更有效,因为它已经在 Node.js 二进制文件中实现了。

    【讨论】:

    • 哇...这么简单的事情可以忽略,但给我带来了很多麻烦。谢谢!如果可以,我会将此标记为正确的。
    【解决方案2】:

    您试图控制台输出str 的值而不更新它。 你应该这样做

    str = str.replace(/\r?\n|\r/g, " ");
    

    在控制台输出之前。

    【讨论】:

      【解决方案3】:

      您需要将数据转换为 JSON 格式。 JSON.parse(data) 您将删除所有换行符并将数据保留为 JSON 格式。

      【讨论】:

        猜你喜欢
        • 2017-08-17
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2022-10-14
        • 1970-01-01
        • 2012-10-06
        • 2017-01-18
        相关资源
        最近更新 更多