如何从用户控制台输入中删除新行

时间:2012-05-10 16:11:12

标签: node.js networking input

如何从Node.js中的用户输入中删除新行?

代码:

var net = require("net");

var clientData = null;

var server = net.createServer(function(client) {
    client.on("connect", function() {
        client.write("Enter something: ");
    });
    client.on("data", function(data) {
        var clientData = data;
        if (clientData != null) {
            client.write("You entered " + "'" + clientData + "'" + ". Some more text.");
        }
    });
});

server.listen(4444);

假设我在控制台中键入“Test”,然后返回以下内容:

You entered 'Test
'. Some more text.

我希望这样的输出出现在单行中。我怎么能这样做?

2 个答案:

答案 0 :(得分:21)

你只需要删除尾随的新行。

您可以剪切最后一个字符:

clientData.slice(0, clientData.length - 1)

或者您可以使用正则表达式:

clientData.replace(/\n$/, '')

答案 1 :(得分:16)

在Windows中,你可能有\ r \ n。所以在核心中,它通常是这样做的:

clientData.replace(/(\n|\r)+$/, '')

BTW,clientData.trim()功能也可能有用。