Rumah > hujung hadapan web > tutorial js > Bagaimana untuk Menghuraikan Rentetan CSV dengan Koma Di Dalam Medan Petikan dalam JavaScript?

Bagaimana untuk Menghuraikan Rentetan CSV dengan Koma Di Dalam Medan Petikan dalam JavaScript?

DDD
Lepaskan: 2024-12-03 00:27:15
asal
273 orang telah melayarinya

How to Parse a CSV String with Commas Inside Quoted Fields in JavaScript?

Coretan JavaScript ini akan membolehkan anda menghuraikan rentetan CSV yang mempunyai koma dalam data, sambil mengabaikan koma di dalam medan yang disebut:

const parseCSV = (csvString) => {
  const rows = csvString.split("\n");
  const result = [];
  for (const row of rows) {
    const values = [];
    let currentField = "";
    let inQuotes = false;
    for (const char of row) {
      if (char === '"' && currentField.length === 0) {
        inQuotes = !inQuotes;
      } else if (char === "," && !inQuotes) {
        values.push(currentField);
        currentField = "";
      } else {
        currentField += char;
      }
    }
    if (currentField.length > 0) {
      values.push(currentField);
    }
    result.push(values);
  }
  return result;
};

const csvString = 'string, duppi, du, 23, lala';
console.log(parseCSV(csvString));
Salin selepas log masuk

Penyelesaian ini menangani masalah anda pertanyaan dengan menggunakan pemeriksaan aksara demi aksara bagi rentetan CSV. Setiap kali koma dikesan dan rentetan tidak berada di dalam medan yang disebut, medan baharu dijana. Apabila tanda petikan berganda ditemui pada permulaan medan, ia menunjukkan permulaan medan yang disebut. Satu lagi tanda petikan berganda di luar medan yang dipetik menandakan penghujung medan tersebut. Dengan sentiasa memeriksa nilai, teknik ini membahagikan rentetan CSV dengan tepat ke dalam medan individu, dengan mengambil kira kawasan yang disebut.

Atas ialah kandungan terperinci Bagaimana untuk Menghuraikan Rentetan CSV dengan Koma Di Dalam Medan Petikan dalam JavaScript?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan