Rumah  >  Artikel  >  hujung hadapan web  >  Mengapa JavaScript Regex Hanya Menangkap Kumpulan Terakhir dalam Ulangan?

Mengapa JavaScript Regex Hanya Menangkap Kumpulan Terakhir dalam Ulangan?

Mary-Kate Olsen
Mary-Kate Olsenasal
2024-11-11 04:12:02219semak imbas

Why Does JavaScript Regex Capture Only the Last Group in a Repetition?

Menangkap Berbilang Kumpulan dalam Ungkapan Biasa JavaScript

Apabila bekerja dengan ungkapan biasa dalam JavaScript, adalah perkara biasa untuk menghadapi situasi di mana anda perlu menangkap berbilang kumpulan data. Walau bagaimanapun, dalam beberapa kes, tingkah laku yang dijangkakan untuk menangkap semua kumpulan yang dipadankan mungkin tidak tercapai.

Sebagai contoh, pertimbangkan kod JavaScript berikut:

Anda mungkin menjangkakan kod itu akan kembali tatasusunan yang mengandungi semua padanan yang ditangkap:

Walau bagaimanapun, keputusan sebenar ialah:

Ini berlaku kerana dalam ungkapan biasa, apabila anda mengulangi kumpulan tangkapan, hanya tangkapan terakhir dikekalkan. Ini ialah gelagat lalai dalam kebanyakan perisa regex.

Penyelesaian untuk Menangkap Semua Padanan

Jika anda perlu menangkap semua kumpulan yang dipadankan, terdapat beberapa pilihan yang tersedia :

  • Pisah pada pembatas: Jika corak yang anda cuba untuk memadankan mengandungi pembatas, pertimbangkan untuk menggunakan kaedah pisah dan bukannya ungkapan biasa. Pendekatan ini boleh digunakan untuk memisahkan rentetan input kepada tatasusunan rentetan.
  • Memadankan menggunakan gelung: Anda boleh menggunakan gelung untuk berulang kali menggunakan ungkapan biasa pada rentetan input menggunakan kaedah exec. Kaedah ini mengembalikan tatasusunan yang mengandungi semua kumpulan yang ditangkap untuk setiap perlawanan.
  • Padanan berbilang peringkat: Pendekatan lain melibatkan menangkap kumpulan berulang dalam satu perlawanan dan kemudian menggunakan ungkapan biasa kedua untuk memecahkannya padankan berasingan.

Contoh Menggunakan Exec Gelung

Contoh berikut menunjukkan pemadanan berbilang kumpulan menggunakan gelung eksec:

Sumber Tambahan

  • biasa- expressions.info/Mengulang Kumpulan Menangkap vs Menangkap Kumpulan Berulang
  • Bagaimana adakah anda mengakses kumpulan yang dipadankan dalam regex javascript?

Atas ialah kandungan terperinci Mengapa JavaScript Regex Hanya Menangkap Kumpulan Terakhir dalam Ulangan?. 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