Menggunakan Regex dalam JavaScript Merentasi Pelbagai Baris
Dalam JavaScript, bendera 'm', yang sepatutnya direka untuk padanan berbilang baris, gagal menangkap kandungan merentas baris baharu. Untuk menyelesaikan masalah ini, penyelesaian yang lebih mantap diperlukan.
Kuncinya ialah menggunakan sama ada '[sS]' atau '[^]' sebagai titik berbilang baris. Corak ini sepadan dengan mana-mana watak, termasuk baris baharu. Pendekatan ini berkesan menangkap kandungan tanpa mengira pengedarannya melalui berbilang baris.
Contoh:
var ss = "<pre class="brush:php;toolbar:false">aaaa\nbbb\ncccddd"; var arr = ss.match( /
[\s\S]*?<\/pre>/gm ); console.log(arr); // Outputs: `<pre class="brush:php;toolbar:false">aaaa\nbbb\nccc`
Alternatif Kurang Samar:
Walaupun penyelesaian yang disediakan berkesan, pendekatan yang kurang rumit boleh dicapai dengan menggantikan '[sS]' dengan '.*?'. Pengkuantiti ini memadankan sebarang bilangan aksara (termasuk baris baharu) secara tidak tamak, menghasilkan padanan yang lebih cekap dan disasarkan.
var arr = ss.match( /<pre class="brush:php;toolbar:false">.*?<\/pre>/gm ); console.log(arr); // Outputs: `<pre class="brush:php;toolbar:false">aaaa\nbbb\nccc`
Petua:
Atas ialah kandungan terperinci Bagaimana untuk Menggunakan Regex dengan Berkesan dalam JavaScript untuk Pemadanan Berbilang Baris?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!