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 |
每天一点点

浙公网安备 33010602011771号