如何使用javascript分割字符串

时间:2017-02-10 08:07:57

标签: javascript arrays json

我在javascript中调用函数有这些结果:

(1, 00), (2, 10), (3, 01), (4, 11)

我想以数组或json格式分配,结果如下:

[{id:1, number: 00},{id:2, number: 10},{id:3, number: 01},{id:4, number: 11}]

或任何会导致数组长度为4的任何东西

这可能吗?请帮忙。谢谢:))

2 个答案:

答案 0 :(得分:3)

使用正则表达式获取模式并根据匹配的内容生成数组。



var data = '(1, 00), (2, 10), (3, 01), (4, 11)';

// regex to match the pattern
var reg = /\((\d+),\s?(\d+)\)/g,
  m;
// array for result
var res = [];
// iterate over each match
while (m = reg.exec(data)) {
  // generate and push the object
  res.push({
    id: m[1],
    number: m[2]
  });
}

console.log(res);




或者拆分字符串。



var data = '(1, 00), (2, 10), (3, 01), (4, 11)';

var res = data
  // remove the last and first char
  .slice(1, -1)
  // split the string
  .split(/\),\s?\(/)
  // iterate over the array to generate result
  .map(function(v) {
    // split the string 
    var val = v.split(/,\s?/);
    // generate the array element
    return {
      id: val[0],
      number: val[1]
    }
  })

console.log(res);




答案 1 :(得分:0)

除了其他拆分解决方案之外,您可以使用String#replace并替换/添加有效JSON字符串的所需部分,并使用JSON.parse解析对象的字符串,您需要

var data = '(1, 00), (2, 10), (3, 01), (4, 11)',
    json = data.replace(/\(/g, '{"id":').replace(/,\s?(?=\d)/g, ',"number":"').replace(/\)/g, '"}'),
    object = JSON.parse('[' + json + ']');

console.log(object);
.as-console-wrapper { max-height: 100% !important; top: 0; }