javascript正则表达式:如何拆分CSV文件?

时间:2018-01-18 03:24:42

标签: javascript regex csv

我正在尝试使用正则表达式

逐行拆分CSV文件
arr = s.split(/\r\n/g);

它正常工作,除非文本分隔符内有\ r \ n(" ...")

CSV文件如下所示:

Nom;Prenom;Adresse;CP;Ville
DUPONT;Albert;"immeuble Future
3 rue de la source
";75000;PARIS
MARTIN;Etienne;"23 rue des lilas
Cité Aubépine
Quartier Saint Laurent";75000;PARIS

我想要的是切除每个\ r \ n除了分隔符内的那些

任何想法?

提前致谢

2 个答案:

答案 0 :(得分:1)

正则表达式不适合此任务。使用CSV解析器执行此任务。例如,这个解析器http://papaparse.com/看起来不错。

答案 1 :(得分:0)

我写了这个代码,但没有正则表达式:

function nbTextDelimiter(s) {
  var a = s.match(/\"/gi);
  return a? a.length : 0; 
}

var arr = st.split(/\r\n/g), arrOut=[], c=0;

for(var i=0 ; i<arr.length ; i++){
  var n = nbTextDelimiter(arr[i]);
  if(!c){
    arrOut.push(arr[i]);  
    if(n%2==1){ c=!c }
  } else {
    arrOut[arrOut.length-1]+=arr[i];
    if(n%2==1){ c=!c }  
  }    
}