普华永道(PwC) 长期招聘各种软件开发,管理岗位,可全年在家办公, 全年假期优厚。有意者可邮件联系 julia_faneast@163.com 职位简介

JS 处理csv 中的 double quote双引号和 comma 逗号

我们知道csv 一般是以逗号,来分割每一列的值; 例如 name, age, sex    那么这个csv 被分割出来的三列分别是

name age sex

 

 

但如果我们的csv 数据是如下这样的,被分割出来是怎样的呢?

name,age,sex \r\n

test,name,16,male

分割出来是这样的

name age sex  
test name 16 male

 

 

 

我们发现列与列错位了。 那该怎么处理呢?

  • 核心思想是吧带有逗号的那个值加上双引号 "test,name"
if (value.includes(',')) {
   value = `"${value}"`;
}

但这就引出另外一个问题了。 如果value 里面有双引号又该怎么办 test,"name ?

  • 核心思想是转义双引号 "", 上面的字符串就变成了 "test,""name"
            if (value) {
              if (value.includes(',')) {
                if (value.includes('"')) {
                  value = value.replace(/"/g, '""');
                }
                value = `"${value}"`;
              }
              line += value + ',';
            } else {
              line += ' ' + ',';
            }

⚠️: 如果value 里面不含逗号,但包含双引号,是不需要特殊处理的;只有含有逗号字符串里面又含有双引号的,双引号才需要特殊处理

最终结果

name age sex
test,"name 16 male
posted @ 2021-02-03 11:16  julia_faneast  阅读(1008)  评论(0)    收藏  举报