我有一个包含项目列表的字符串。列表中的项目包含表示数字的字符串。
var list = '"One","Two","3,842","3,549","3,653","4,443","3,994","3,935"'
我试着像这样分裂:
list.split(',')
// result: [""One"", ""Two"", ""3", "842"", ""3", "549"", ""3", "653"", ""4", "443"", ""3", "994"", ""3", "935""]
这不是我想要的。
我想:
["One","Two","3,842","3,549","3,653","4,443","3,994","3,935"]
// or even better:
["One", "Two", 3842, 3549, 3653, 4443, 3994, 3935]
如何正确地将此字符串拆分为上面的数组?
答案 0 :(得分:4)
var list = '"One","Two","3,842","3,549","3,653","4,443","3,994","3,935"'
var split = JSON.parse("[" + list + "]");
答案 1 :(得分:4)
你只需要
list.split(',"').map(function(e) {
return e.replace(/"|,/g, '');
});
要确保,
后跟"
,然后删除任何额外的"
或,
,结果将是:
["One", "Two", "3842", "3549", "3653", "4443", "3994", "3935"]
答案 2 :(得分:2)
为什么不匹配引号内的元素?
var list = '"One","Two","3,842","3,549","3,653","4,443","3,994","3,935"';
var elems = list.match(/"[^"]*"/g);
带有捕获组的较长版本(此版本没有额外的双引号):
var list = '"One","Two","3,842","3,549","3,653","4,443","3,994","3,935"',
re = /"([^"]*)"/g,
arr = [],
result;
while(result = re.exec(list)){
arr.push(result[1]);
}