我正在写一个函数来订阅通过蓝牙传输的数据并解析它,最后将特定的信息返回到输出json。我的邮件格式为'Header','Id','Ggid','Ppayload','Ttimestamp','AsigA','BsigB'。在这种格式下,每个分段之间没有空格,只有一个逗号。这种格式只需要标识和标题。标题是静态的,并始终以'H'开始。其他信息将以大写字母开头,“Id”除外。例如,Id段可以是12345678,但有效载荷段将是P12345678。目前,我有一个非常复杂的代码来解析这些信息。清理解析消息并返回json的解决方案
实施例的消息是一个字符串:H,00198601,GLOCATE,P762,T1.50,A64,B67
var len = Message.length;
app.outputTagJson.Tag = {};
if (len >= 2)
{
app.outputTagJson.Tag.tagID = Message[1];
app.outputTagJson.Tag.isLost = "False";
if (len >= 3)
{
app.outputTagJson.Tag.groupID = Message[2].slice(1,Message[2].length);
if (len >= 4)
{
app.outputTagJson.Tag.payload = Message[3].slice(1,Message[3].length);
if (len >= 5)
{
app.outputTagJson.Tag.timeStamp = Message[4].slice(1,Message[4].length);
if (len >= 6)
{
app.outputTagJson.Tag.sigStrenthA = Message[5].slice(1,Message[5].length);
if (len >= 7)
{
app.outputTagJson.Tag.sigStrenthB = Message[6].slice(1,Message[6].length);
}
}
}
}
}
}
我想的通用正则表达式来削减在JavaScript这种格式,但我我并不熟悉它。那么是否有没有使用正则表达式的更清洁的解决方案,或者如果我必须使用正则表达式,我该如何处理?
你能提供你得到消息的样本? –
您可以分享您的输入和预期输出的实际例子吗?你共享的代码似乎开始在中间的某个地方......就像你已经把逗号分割了,并删除了单引号?它也似乎从你的代码中,像你想剥离除ID以外的每个值的第一个字符? – smarx
@smarx,是的,我已经用逗号分隔了原始字符串,我会马上添加示例消息。 –