Bagaimana untuk Memisahkan Rentetan Dipisahkan Koma dalam JavaScript Semasa Memelihara Kandungan Dalam Petikan Berganda?

Mary-Kate Olsen
Lepaskan: 2024-10-26 21:38:29
asal
169 orang telah melayarinya

How to Split a Comma-Separated String in JavaScript While Preserving Contents Within Double Quotes?

Memisahkan Rentetan dengan Koma Semasa Memelihara Kandungan Petikan Dua Kali dalam JavaScript

Apabila berurusan dengan rentetan yang dipisahkan koma dalam JavaScript, adalah penting untuk mengendalikan situasi di mana petikan berganda digunakan untuk melampirkan bahagian tertentu. Mengabaikan perkara ini boleh menyebabkan perpecahan yang tidak diingini.

Masalahnya:

Memandangkan rentetan yang dipisahkan koma, matlamatnya adalah untuk mendapatkan tatasusunan yang mengekalkan kandungan dalam petikan dua kali . Sebagai contoh, menukar "a, b, c, "d, e, f", g, h" kepada tatasusunan enam elemen: ["a", "b", "c", "d, e, f" , "g", "h"].

Pendekatan Salah:

Menggunakan kaedah split() dengan ungkapan biasa seperti /, |"[^"] "/g akan membelah rentetan secara salah, malah mengekstrak kandungan dalam petikan berganda.

Penyelesaian Betul:

Untuk mengendalikan senario ini dengan betul, kaedah biasa yang lebih disesuaikan ungkapan diperlukan:

/(".*?"|[^",\s]+)(?=\s*,|\s*$)/g
Salin selepas log masuk

Penjelasan:

  • (".*?"): Memadankan petikan berganda dengan sebarang bilangan aksara di antara .
  • |: Memberi isyarat keadaan "atau".
  • [^",s] : Memadankan satu atau lebih aksara bukan petikan berganda, bukan koma, bukan ruang.
  • (?=s*,|s*$): Penegasan pandang ke hadapan yang positif yang memastikan perlawanan diikuti sama ada koma dan ruang kosong atau penghujung rentetan.

Penggunaan:

const str = 'a, b, c, "d, e, f", g, h';
const arr = str.match(/(".*?"|[^",\s]+)(?=\s*,|\s*$)/g);

for (let i = 0; i < arr.length; i++) {
  console.log(`arr[${i}] = ${arr[i]}`);
}
Salin selepas log masuk

Output:

arr[0] = a
arr[1] = b
arr[2] = c
arr[3] = "d, e, f"
arr[4] = g
arr[5] = h
Salin selepas log masuk

Atas ialah kandungan terperinci Bagaimana untuk Memisahkan Rentetan Dipisahkan Koma dalam JavaScript Semasa Memelihara Kandungan Dalam Petikan Berganda?. 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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!