Heim >Web-Frontend >js-Tutorial >Wie analysiere ich CSV-Strings mit Kommas in JavaScript richtig?

Wie analysiere ich CSV-Strings mit Kommas in JavaScript richtig?

Linda Hamilton
Linda HamiltonOriginal
2024-12-03 02:51:14971Durchsuche

How to Correctly Parse CSV Strings with Commas in JavaScript?

So gehen Sie mit Kommas in CSV-Daten um, wenn Sie Strings in JavaScript analysieren

Beim Umgang mit CSV-Strings, die Daten enthalten, die auch Kommas enthalten, kann das Parsen möglich sein knifflig sein. Wenn Sie die Zeichenfolge allein durch Kommas (",") aufteilen, erhalten Sie nicht die gewünschte Ausgabe, wenn einige Werte in Anführungszeichen eingeschlossen sind. So können Sie solche CSV-Zeichenfolgen unter Berücksichtigung von Anführungszeichen analysieren:

// Regex to validate a CSV string:
const re_valid = /^\s*(?:'[^'\]*(?:\[\S\s][^'\]*)*'|"[^"\]*(?:\[\S\s][^"\]*)*"|[^,'"\s\]*(?:\s+[^,'"\s\]+)*)\s*(?:,\s*(?:'[^'\]*(?:\[\S\s][^'\]*)*'|"[^"\]*(?:\[\S\s][^"\]*)*"|[^,'"\s\]*(?:\s+[^,'"\s\]+)*)*\s*)*$/;

// Regex to parse one value from a valid CSV string:
const re_value = /(?!\s*$)\s*(?:'([^'\]*(?:\[\S\s][^'\]*)*)'|"([^"\]*(?:\[\S\s][^"\]*)*)"|([^,'"\s\]*(?:\s+[^,'"\s\]+)*)|)\s*(?:,|$)/g;

function CSVtoArray(text) {
    if (!re_valid.test(text)) return null;
    const a = [];
    text.replace(re_value, (m0, m1, m2, m3) => {
        if      (m1 !== undefined) a.push(m1.replace(/\'/g, "'"));
        else if (m2 !== undefined) a.push(m2.replace(/\"/g, '"'));
        else if (m3 !== undefined) a.push(m3);
        return '';
    });
    if (/,\s*$/.test(text)) a.push('');
    return a;
}

Mit diesem Ansatz können Sie CSV-Zeichenfolgen, einschließlich solcher mit gemischten Typen und Escape-Zeichen, unter Berücksichtigung von Anführungszeichen genau analysieren.

Das obige ist der detaillierte Inhalt vonWie analysiere ich CSV-Strings mit Kommas in JavaScript richtig?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn