


Bagaimanakah JavaScript Boleh Menghuraikan Rentetan CSV dengan Koma dengan Berkesan dalam Medan Dipetik?
Mengendalikan Koma dalam Medan CSV Dipetik Menggunakan JavaScript
Apabila berurusan dengan rentetan CSV (Nilai Dipisahkan Koma) dalam JavaScript, penghuraian boleh menjadi mencabar apabila data boleh mengandungi koma dalam medan yang disebut. Begini cara anda boleh mengendalikan senario ini dengan berkesan dengan penyelesaian terperinci:
Regex untuk Mengesahkan dan Menghuraikan Rentetan CSV
Untuk memastikan rentetan input ialah rentetan CSV yang sah , kami mentakrifkan regex pengesahan:
re_valid = r""" # Validate a CSV string having single, double or un-quoted values. ^ # Anchor to start of string. \s* # Allow whitespace before value. (?: # Group for value alternatives. '[^'\]*(?:\[\S\s][^'\]*)*' # Either Single quoted string, | "[^"\]*(?:\[\S\s][^"\]*)*" # or Double quoted string, | [^,'"\s\]*(?:\s+[^,'"\s\]+)* # or Non-comma, non-quote stuff. ) # End group of value alternatives. \s* # Allow whitespace after value. (?: # Zero or more additional values , # Values separated by a comma. \s* # Allow whitespace before value. (?: # Group for value alternatives. '[^'\]*(?:\[\S\s][^'\]*)*' # Either Single quoted string, | "[^"\]*(?:\[\S\s][^"\]*)*" # or Double quoted string, | [^,'"\s\]*(?:\s+[^,'"\s\]+)* # or Non-comma, non-quote stuff. ) # End group of value alternatives. \s* # Allow whitespace after value. )* # Zero or more additional values $ # Anchor to end of string. """
Untuk menghuraikan nilai individu daripada rentetan CSV yang disahkan, kami menggunakan regex berikut:
re_value = r""" # Match one value in valid CSV string. (?!\s*$) # Don't match empty last value. \s* # Strip whitespace before value. (?: # Group for value alternatives. '([^'\]*(?:\[\S\s][^'\]*)*)' # Either : Single quoted string, | "([^"\]*(?:\[\S\s][^"\]*)*)" # or : Double quoted string, | ([^,'"\s\]*(?:\s+[^,'"\s\]+)*) # or : Non-comma, non-quote stuff. ) # End group of value alternatives. \s* # Strip whitespace after value. (?:,|$) # Field ends on comma or EOS. """
Fungsi Penghuraian CSV
Dengan regex ini ditakrifkan, kami boleh melaksanakan fungsi untuk menghuraikan CSV rentetan:
function CSVtoArray(text) { // Return NULL if input string is not well formed CSV string. if (!re_valid.test(text)) return null; var a = []; // Initialize array to receive values. text.replace(re_value, // "Walk" the string using replace with callback. function(m0, m1, m2, m3) { // Remove backslash from \' in single quoted values. if (m1 !== undefined) a.push(m1.replace(/\'/g, "'")); // Remove backslash from \" in double quoted values. else if (m2 !== undefined) a.push(m2.replace(/\"/g, '"')); else if (m3 !== undefined) a.push(m3); return ''; // Return empty string. }); // Handle special case of empty last value. if (/,\s*$/.test(text)) a.push(''); return a; }
Contoh Penggunaan
Berikut ialah beberapa contoh rentetan CSV input dan output yang dihuraikan yang sepadan:
// Test string from original question let result = CSVtoArray("'string, duppi, du', 23, lala"); console.log(result); // ['string, duppi, du', '23', 'lala'] // Empty CSV string let result = CSVtoArray(""); console.log(result); // [] // CSV string with two empty values let result = CSVtoArray(","); console.log(result); // ['', ''] // Double quoted CSV string having single quoted values let result = CSVtoArray("'one','two with escaped \' single quote', 'three, with, commas'"); console.log(result); // ['one', 'two with escaped \' single quote', 'three, with, commas'] // Single quoted CSV string having double quoted values let result = CSVtoArray('"one","two with escaped \" double quote", "three, with, commas"'); console.log(result); // ['one', 'two with escaped " double quote', 'three, with, commas'] // CSV string with whitespace in and around empty and non-empty values let result = CSVtoArray(" one , 'two' , , ' four' ,, 'six ', ' seven ' , "); console.log(result); // ['one', 'two', '', 'four', '', 'six ', ' seven '] // Not valid let result = CSVtoArray("one, that's me!, escaped \, comma"); console.log(result); // null
Penyelesaian ini memastikan penghuraian tepat rentetan CSV, mengendalikan medan petikan yang mengandungi koma sambil mematuhi keperluan yang ditetapkan.
Atas ialah kandungan terperinci Bagaimanakah JavaScript Boleh Menghuraikan Rentetan CSV dengan Koma dengan Berkesan dalam Medan Dipetik?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

Video Face Swap
Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas

Soalan dan penyelesaian yang sering ditanya untuk percetakan tiket kertas terma depan dalam pembangunan front-end, percetakan tiket adalah keperluan umum. Walau bagaimanapun, banyak pemaju sedang melaksanakan ...

JavaScript adalah asas kepada pembangunan web moden, dan fungsi utamanya termasuk pengaturcaraan yang didorong oleh peristiwa, penjanaan kandungan dinamik dan pengaturcaraan tak segerak. 1) Pengaturcaraan yang didorong oleh peristiwa membolehkan laman web berubah secara dinamik mengikut operasi pengguna. 2) Penjanaan kandungan dinamik membolehkan kandungan halaman diselaraskan mengikut syarat. 3) Pengaturcaraan Asynchronous memastikan bahawa antara muka pengguna tidak disekat. JavaScript digunakan secara meluas dalam interaksi web, aplikasi satu halaman dan pembangunan sisi pelayan, sangat meningkatkan fleksibiliti pengalaman pengguna dan pembangunan silang platform.

Tidak ada gaji mutlak untuk pemaju Python dan JavaScript, bergantung kepada kemahiran dan keperluan industri. 1. Python boleh dibayar lebih banyak dalam sains data dan pembelajaran mesin. 2. JavaScript mempunyai permintaan yang besar dalam perkembangan depan dan stack penuh, dan gajinya juga cukup besar. 3. Faktor mempengaruhi termasuk pengalaman, lokasi geografi, saiz syarikat dan kemahiran khusus.

Perbincangan mengenai realisasi kesan animasi tatal dan elemen Parallax dalam artikel ini akan meneroka bagaimana untuk mencapai yang serupa dengan laman web rasmi Shiseido (https://www.shiseido.co.jp/sb/wonderland/) ... ...

Pembelajaran JavaScript tidak sukar, tetapi ia mencabar. 1) Memahami konsep asas seperti pembolehubah, jenis data, fungsi, dan sebagainya. 2) Pengaturcaraan asynchronous tuan dan melaksanakannya melalui gelung acara. 3) Gunakan operasi DOM dan berjanji untuk mengendalikan permintaan tak segerak. 4) Elakkan kesilapan biasa dan gunakan teknik debugging. 5) Mengoptimumkan prestasi dan mengikuti amalan terbaik.

Trend terkini dalam JavaScript termasuk kebangkitan TypeScript, populariti kerangka dan perpustakaan moden, dan penerapan webassembly. Prospek masa depan meliputi sistem jenis yang lebih berkuasa, pembangunan JavaScript, pengembangan kecerdasan buatan dan pembelajaran mesin, dan potensi pengkomputeran IoT dan kelebihan.

Bagaimana cara menggabungkan elemen array dengan ID yang sama ke dalam satu objek dalam JavaScript? Semasa memproses data, kita sering menghadapi keperluan untuk mempunyai id yang sama ...

Terokai pelaksanaan fungsi seretan panel dan drop panel seperti VSCode di bahagian depan. Dalam pembangunan front-end, bagaimana untuk melaksanakan vscode seperti ...
