13

如何从 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.

我希望这样的输出出现在单行中。我怎样才能做到这一点?

4

2 回答 2

23

你只需要去掉尾随的新行。

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

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

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

clientData.replace(/\n$/, '')
于 2012-05-10T17:08:03.560 回答
20

在 Windows 中,您可能有 \r\n 。因此,在核心中,它通常是这样完成的:

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

顺便说一句,clientData.trim()功能也可能有用。

于 2012-05-11T07:32:35.600 回答