2012-05-10 43 views
10

如何从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); 

比方说,我在控制台输入“测试”,则返回以下内容:

You entered 'Test 
'. Some more text. 

我想这样的输出出现在一行。我怎样才能做到这一点?

回答

17

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

可以削减的最后一个字符是这样的:

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

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

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

完美。非常感谢你:) – Eleeist

12

在Windows中,你可能有\ r \ n那里。因此,在核心是经常做的那样:

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

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

+0

我更喜欢使用trim()方法,因为它更具语义。 – bashaus