javascript拆分字符串功能不起作用

时间:2018-07-24 07:47:10

标签: javascript string 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 = 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

不是创建具有两个元素的数组。

4 个答案:

答案 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)

您可以使用:

  • var res = str.split(“#”);

您可以在浏览器本身中签入Javascript控制台。

作为建议/想法,您始终可以使用浏览器控制台(例如Chrome浏览器)来执行类似这样的简单脚本。

这样,您可以节省时间,因为更容易检查数据结构及其内部数据。

enter image description here

答案 3 :(得分:0)

如果您尝试

var res = str.split('*');

您将获得三个要素:
res [0]是”(空字符串)
res [1]是'HQ,61 ...'
res [2]是“总部,...”