我有一个字符串,它本身是一个逗号分隔的引用字符串列表 - 可以在其中包含逗号。
示例:
var str = '"long one","short","oh, look","wow.", ""';
我需要将其拆分为数组:
['long one', 'short', 'oh, look', 'wow.', '']
// will take this if it is easier
['"long one"', '"short"', '"oh, look"', '"wow."', '""']
我尝试按,
分割,但它会抛出带有逗号的条目。我也试过按\",
进行拆分,但是它创建了一个高边形的字符串:
['"long one', '"short', '"oh, look', '"wow.', '"']
我尝试按\",\"
拆分,但导致同样的问题,但仅针对第一个和最后一个条目:
['"long one', 'short', 'oh, look', 'wow.', '"']
我也尝试了this answer中的regex表达式,但它在数组的开头和结尾添加了一个空条目:
['', '"long one"', '"short"', '"oh, look"', '"wow."', '""', '']
有什么建议吗?
感谢。
答案 0 :(得分:6)
您可以将其视为JSON字符串的一部分,并附加必要的部分以便解析为数组。
Serializable

答案 1 :(得分:0)
如果使用.split()
,
"
字符,则可以RegExp
逗号/,(?=")/
个字符
str.split(/,(?=")/)
答案 2 :(得分:0)
var s = '"long one","short","oh, look","wow.", ""';
var answer = s.split(/("*,.?")/gi).filter(function (a) {
return a.replace(/"/g, '').length > 2
}).map(function (a) {
return a.replace(/"/g, '')
});
console.log(s);
console.log(answer);