如何检查它是否是完整数据

时间:2015-05-06 07:04:41

标签: javascript node.js

我有一台从客户端设备接收数据的服务器。客户端将数据发送到服务器,它总是最多3个字符,例如*46

如何检查数据是否以星号和2个字符结尾,以便我知道这是我客户的完整数据?

此外,设备可能会在数据的末尾添加换行符,那么我该如何检查数据末尾是否有换行符?

到目前为止,这是我的代码:

var net = require('net');

var server = net.createServer(function(socket) {
   socket.on('data', function(data) {
       var receivedata = data.toString();
      // How to check if received data is complete, i.e. ending in 3 characters, *23
   });
});

3 个答案:

答案 0 :(得分:0)

您可以使用正则表达式。以下是一些帮助您启动的链接:

你想要的实际正则表达式是: 的 * [0-9] {2} $

答案 1 :(得分:0)

使用RegEx。举个例子:

var str = "Hello wor*23";
if(str.match(/\*[0-9][0-9]$/)){
  console.log("Hello");
}
else{
  console.log("Data not proper");
}

检查最后3个值是否为* number number

答案 2 :(得分:0)

你可能正在寻找这个

只要数据是流的一部分,您需要等待end事件才能获得完整的数据

var net = require('net');

var server = net.createServer(function(socket) {
   var receivedata = "";
   socket.on('data', function(data) {
      receivedata += data.toString();
   });
   socket.on('end', function() {
      console.log(receivedata);
   });
});

注意 未经测试