📜  csv 中的 javascript 转义逗号 - Javascript (1)

📅  最后修改于: 2023-12-03 15:30:13.078000             🧑  作者: Mango

CSV 中的 JavaScript 转义逗号 - JavaScript

在处理 CSV 文件时,逗号通常用作分隔符。但是,如果 CSV 中的某个字段本身包含逗号,则会干扰 CSV 文件的解析。在这种情况下,可以使用逗号的转义符号进行转义。

转义逗号的方法

在 CSV 中,使用双引号 " 包括字段值,可以在其中使用逗号 ,。如果字段中本身包含双引号,则需要将双引号转义为两个双引号 ""

例如,以下 CSV 数据:

Name,Age,Message
John,27,"Hello, World!"
"Bob ""The Builder""",30,"Can we fix it, Yes we can!"

可以使用以下方式进行解析:

const csv = `
Name,Age,Message
John,27,"Hello, World!"
"Bob ""The Builder""",30,"Can we fix it, Yes we can!"
`;

const rows = csv.split('\n');
const headers = rows[0].split(',');

const data = [];

for (let i = 1; i < rows.length; i++) {
  const values = rows[i].split(',');
  const record = {};

  for (let j = 0; j < headers.length; j++) {
    let value = values[j];

    if (value.startsWith('"') && value.endsWith('"')) {
      value = value.slice(1, -1).replace(/""/g, '"');
    }

    record[headers[j]] = value;
  }

  data.push(record);
}

console.log(data);

可以看到,当一个字段以双引号开始和结束时,我们使用 slice() 去掉头和尾的引号,并使用 replace() 将两个双引号转义为一个双引号,确保被正确解析。

总结

转义逗号是在处理 CSV 文件时很常见的问题。然而,该问题可以通过在字段值中使用双引号进行解决。在 JavaScript 中,使用 slice()replace() 转义包含双引号和逗号的字段值,确保正确解析。