1

可能重复:
用于解析 CSV 数据的 Javascript 代码

我有这个字符串:

"display, Name" <test@test.com>, display" Name <test@test.com>, test@test.com

我想把这个字符串分成一个数组

array[0] = "\"display, Name\" <test@test.com>"
array[1] = "display\" Name <test@test.com>"
array[2] = "test@test.com"

这是我的代码:

var comma = inQuotes = false;
for(var i=0;i<str.length;i++) {
            if (str[i] == '"') inQuotes = !inQuotes;
            comma = (str[i] == "," && !inQuotes)  ? true : false;
            item += (!comma) ? str[i] : "";
            if(comma || i == str.length-1) {  
                items.push(item);
                item = "";
            }    
        } 

我的问题是,如果您有一个双引号,而字符串中没有更近的

我感谢您的帮助...

4

1 回答 1

1

我试过这个,它适用于上面的字符串jsfiddle

var a = '"display, Name" <test@test.com>, display" Name <test@test.com>, test@test.com';
var aa = a.match(/"(.*?)"(.*?),|(.*?),|(.*?)$/g); 
aa.pop();
aa // [""display, Name" <test@test.com>,", " display" Name <test@test.com>,", " test@test.com"]
于 2012-11-09T21:50:28.777 回答