我有一台从客户端设备接收数据的服务器。客户端将数据发送到服务器,它总是最多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
});
});
答案 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);
});
});
注意 未经测试