Rumah > hujung hadapan web > tutorial js > Bagaimana untuk Mengendalikan Padanan Regex Berbilang Baris dalam JavaScript?

Bagaimana untuk Mengendalikan Padanan Regex Berbilang Baris dalam JavaScript?

Linda Hamilton
Lepaskan: 2024-10-28 20:48:02
asal
911 orang telah melayarinya

 How to Handle Multi-Line Regex Matching in JavaScript?

Padanan Regeks Berbilang Baris dengan JavaScript

Apabila memadankan rentetan yang merentangi berbilang baris, bendera /m JavaScript diketahui tidak mencukupi. Untuk menangani had ini, pendekatan yang lebih mantap diperlukan.

Penyelesaian

Penyelesaian melibatkan penggantian lalai . corak (titik), yang sepadan dengan mana-mana aksara tunggal, dengan [sS] sebaliknya. Berikut ialah contoh:

var ss = "<pre class="brush:php;toolbar:false">aaaa\nbbb\nccc
ddd"; var arr = ss.match(//gm); alert(arr); // "<pre class="brush:php;toolbar:false">... "
Salin selepas log masuk

regex ini menggunakan metacharacter [sS], yang sepadan dengan mana-mana aksara, termasuk spasi putih dan aksara baris baharu. Akibatnya, regex boleh memadankan rentetan tanpa mengira pemisah barisnya.

Alternatif dan Pertimbangan Prestasi

Walaupun [sS] ialah penyelesaian yang boleh dipercayai, terdapat pendekatan alternatif :

  • [^]` (ditamatkan): Memadankan mana-mana aksara selain daripada pemisah baris.
  • (.|r|n) dan (.| [rn]): Kedua-dua corak ini juga boleh memadankan rentetan berbilang baris, tetapi ia jauh lebih perlahan mengikut penanda aras.

Amalan Terbaik

Untuk mengoptimumkan prestasi dan elakkan ketamakan yang tidak perlu, pertimbangkan amalan terbaik berikut:

  • Gunakan *? atau ? pengkuantiti bukan * atau untuk mengehadkan pemadanan kepada minimum yang diperlukan.
  • Elakkan menggunakan pengkuantiti posesif seperti atau * .

Atas ialah kandungan terperinci Bagaimana untuk Mengendalikan Padanan Regex Berbilang Baris dalam JavaScript?. 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