我想解析TLV字符串并在提供标签值时获取值。

样品:


  000201021642333310011114235204546757034445802IN5910我的
  公司6005Vegas6304bb02


根据TLV规则,标记52将给出值5467,57将为333。

最佳答案

var str = '000201021642333310011114235204546757034445802IN5910My Company6005Vegas6304bb02';
var headerLength = 6; // assuming header length is always 6
var header = str.substring(0, 6);

var tags = [];

// start after header
var i = 6;
while (i < str.length) {
    var tag = str.substring(i, i + 2);
    i += 2;
    var valueLength = Number(str.substring(i, i + 2));
    i += 2;
    var value = str.substring(i, i + valueLength);
    i += valueLength;
    tags.push({tag: tag, value: value});
}

10-06 10:31
查看更多