我正在尝试分割字符串:
var str = "*HQ,6170930129,V1,185409,A,3132.3228,N,07424.7726,E,000.04,000,280618,FBFFBBFF,410,04,08028,40555#*HQ,6170930129,V1,185413,A,3132.3226,N,07424.7735,E,000.15,000,280618,FBFFBBFF,410,04,08028,40555"
var res = device_data.split('*');
但是它不起作用。只是显示这个字符串
var str = "*HQ,6170930129,V1,185409,A,3132.3228,N,07424.7726,E,000.04,000,280618,FBFFBBFF,410,04,08028,40555#*HQ,6170930129,V1,185413,A,3132.3226,N,07424.7735,E,000.15,000,280618,FBFFBBFF,410,04,08028,40555"
var res = str.split('*');
console.dir(res)
,HQ,6170930129,V1,185409,A,3132.3228,N,07424.7726,E,000.04,000,280618,FBFFBBFF,410,04,08028,40555#,HQ,6170930129,V1,185413,A,3132.3226,N,07424.7735,E,000.15,000,280618,FBFFBBFF,410,04,08028,40555
不是创建具有两个元素的数组。
答案 0 :(得分:2)
恕我直言,你想要这样的东西:
var str = "*HQ,6170930129,V1,185409,A,3132.3228,N,07424.7726,E,000.04,000,280618,FBFFBBFF,410,04,08028,40555#*HQ,6170930129,V1,185413,A,3132.3226,N,07424.7735,E,000.15,000,280618,FBFFBBFF,410,04,08028,40555"
splitStrArr = str.split('*').filter(str => str != "")
console.log(splitStrArr)
console.log(splitStrArr[0])
console.log(splitStrArr[1])
答案 1 :(得分:1)
您将获得一个开头带有句点的字符串,因为您所做的任何操作都会导致将String#split的结果转换为字符串。 String#split返回一个数组。转换为字符串的数组的形式为element0,element1,element2 ...用逗号分隔的元素。
您的情况下String#split的结果为[“”,...],包含3个元素,因为您的字符串以要搜索的字符'*'开头,因此String#split将创建一个空字符串作为第一个返回数组的元素。因此结果完全符合预期,并且String#split可以按预期工作。
删除字符串的第一个字符
mystring.substr(1).split('*')
摆脱空字符串
mystring.split('*').filter(s=>s!='')
以获得所需的结果。
答案 2 :(得分:0)
您可以使用:
您可以在浏览器本身中签入Javascript控制台。
作为建议/想法,您始终可以使用浏览器控制台(例如Chrome浏览器)来执行类似这样的简单脚本。
这样,您可以节省时间,因为更容易检查数据结构及其内部数据。
答案 3 :(得分:0)
如果您尝试
var res = str.split('*');
您将获得三个要素:
res [0]是”(空字符串)
res [1]是'HQ,61 ...'
res [2]是“总部,...”