我正在寫一個函數來訂閱通過藍牙傳輸的數據並解析它,最後將特定的信息返回到輸出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,是的,我已經用逗號分隔了原始字符串,我會馬上添加示例消息。 –