定位器回传数据,需要按照长度切割字符串,
发布于 2年前 作者 sipgear 843 次浏览

在处理定位数据回传时,定位器回回传一条或者连在一起的几条数据,所以要按照32字节进行切割

2471012160480329022402112232103700113284958E000161FFFFFBFFFF000F  //一条记录

2471012160480329022402112232103700113284958E000161FFFFFBFFFF000F2471012160480329022402112232103700113284958E000161FFFFFBFFFF000F2471012160480329022402112232103700113284958E000161FFFFFBFFFF000F2471012160480329022402112232103700113284958E000161FFFFFBFFFF000F    //四条记录。

暂时没有办法进行切割。 查javascript 资料,用replace

var str = buffer.replace(/(.{32})/g)

sipgear

3 回复
var strArr = [];
            var n = 64;
            for (var i = 0, l = buffer.length; i < l/n; i++) {
                var a = buffer.slice(n*i, n*(i+1));
                strArr.push(a);
            }
            console.log(strArr);

实现了

var flag = 32;
var arr = [];
for(var i=0,len=str.length/flag;i<len;i++) {
  str1 = str.substr(0,flag);
  str = str.replace(str1,'');
  //在此可以进行arr.push(str1)操作
 alert(str1);
}
 if ( buffer.length < 1025 ){
                    var flag = 64;
                    var arr = [];
                     for(var i=0,len=buffer.length/flag;i<len;i++) {
                    str1 = buffer.substr(0,flag);
                    buffer = buffer.replace(str1,''); 
                   arr.push(str1);
                     }

可以输出数组了, [ '2471012160100329022402112232103700113284958e000161fffffbffff000f’, '2471012160110429022402112332103700113284958e000162fffffbffff000f’, ‘2471012160120529022402112432103700113284958e000163fffffbffff000f’ ]

对上面的数组元素进行解码的已写好,但如何把这些数组的元素一个一个传递到变量 msg。

回到顶部