Rumah >hujung hadapan web >tutorial js >Bagaimana untuk Memisahkan Rentetan dengan Koma Semasa Mengabaikan Koma Dalam Petikan Berganda dalam JavaScript?

Bagaimana untuk Memisahkan Rentetan dengan Koma Semasa Mengabaikan Koma Dalam Petikan Berganda dalam JavaScript?

Patricia Arquette
Patricia Arquetteasal
2024-10-28 05:16:30516semak imbas

How to Split a String by Commas While Ignoring Commas Within Double Quotes in JavaScript?

Pisah Rentetan dengan Koma dan Abaikan Yang Dalam Petikan Berganda (JavaScript)

Apabila bekerja dengan rentetan, mungkin perlu untuk memisahkannya ke dalam tatasusunan elemen berdasarkan pembatas yang ditentukan. Walau bagaimanapun, kadangkala pembatas berlaku dalam petikan berganda, yang sepatutnya diabaikan semasa membelah.

Pertimbangkan rentetan berikut yang perlu ditukar kepada tatasusunan enam elemen: "a, b, c, "d, e, f", g, h". Matlamatnya adalah untuk memisahkan setiap elemen sambil mengabaikan koma yang dilampirkan dalam petikan berganda.

Satu pendekatan ialah menggunakan ungkapan biasa:

<code class="javascript">var str = 'a, b, c, "d, e, f", g, h';
var arr = str.match(/(&quot;.*?&quot;|[^&quot;,\s]+)(?=\s*,|\s*$)/g);</code>

Berikut ialah pecahan ungkapan biasa:

(
    &quot;.*?&quot;       # double quotes + anything but double quotes + double quotes
    |           # OR
    [^&quot;,\s]+    # 1 or more characters excl. double quotes, comma or spaces of any kind
)
(?=             # FOLLOWED BY
    \s*,        # 0 or more empty spaces and a comma
    |           # OR
    \s*$        # 0 or more empty spaces and nothing else (end of string)
)

regex ini akan menangkap sama ada rentetan petikan dua kali atau mana-mana aksara lain yang bukan koma atau ruang, menghalang koma yang dipetik daripada dipecahkan.

Susun atur arr akan mengandungi elemen pisah, yang kemudian boleh dilog atau digunakan untuk pemprosesan selanjutnya.

Atas ialah kandungan terperinci Bagaimana untuk Memisahkan Rentetan dengan Koma Semasa Mengabaikan Koma Dalam Petikan Berganda dalam JavaScript?. 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