var ss= "<pre>aaaa\nbbb\nccc</pre>ddd";
var arr= ss.match( /<pre.*?<\/pre>/gm );
alert(arr); // null
Saya ingin blok PRE diambil, meskipun itu mencakup karakter baris baru. Saya pikir bendera 'm' melakukannya. Tidak.
Temukan jawabannya di sini sebelum memposting. Karena saya pikir saya tahu JavaScript (baca tiga buku, jam kerja) dan tidak ada solusi di SO, saya akan berani memposting. lempar batu di sini
Jadi solusinya adalah:
var ss= "<pre>aaaa\nbbb\nccc</pre>ddd";
var arr= ss.match( /<pre[\s\S]*?<\/pre>/gm );
alert(arr); // <pre>...</pre> :)
Adakah yang memiliki cara yang kurang samar?
Sunting: ini duplikat tetapi karena lebih sulit ditemukan daripada milik saya, saya tidak menghapus.
Ini mengusulkan [^]
sebagai "titik multiline". Apa yang masih saya tidak mengerti adalah mengapa [.\n]
tidak berhasil. Kira ini adalah salah satu bagian sedih dari JavaScript ..