Rumah  >  Artikel  >  hujung hadapan web  >  Bagaimana untuk Memisahkan Rentetan Dipisahkan Koma dalam JavaScript Semasa Memelihara Kandungan Dalam Petikan Berganda?

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

Mary-Kate Olsen
Mary-Kate Olsenasal
2024-10-26 21:38:29170semak imbas

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

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]}`);
}

Output:

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

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!

Kenyataan:
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