2013-10-08 33 views
3

我正在寻找分割逗号分隔的字符串。 array1从一个.csv文件中的行的字符串填充。如何防止使用.split在逗号分隔?

然后,Array2将其分割为单独的值。它工作正常,但不是如果我在引号内有逗号。

for (var i = 0; i < array1.length; i++) { 
    array2.push(array1[i].split(","));  
} 

array1[0] = abcde, defg, hijkl; 
array1[1] = abcde, "def,ghi" , jklmn; 

应该成为

array2[0].... 
array2[1][0] = abcde 
array2[1][1] = def,ghi 
array2[1][2] = jklmn 

如何防止在引述逗号分割?

+3

您必须编写一个完整的CSV解析器。你不能盲目地将正则表达式应用于csv,并希望获得好的结果。 –

+4

CSV解析是一项常见任务。我会使用处理边界案例并继续前进的第三方库。 –

+1

请参阅[这个答案](http://stackoverflow.com/questions/1293147/javascript-code-to-parse-csv-data) –

回答

0

在你的正则表达式使用前瞻:

split(",(?=(([^\"]*\"){2})*[^\"]*$)") 

这在逗号后面的甚至号报价(那些跟一个数量必须引号)只有分裂。