var ss= "<pre>aaaa\nbbb\nccc</pre>ddd";
var arr= ss.match( /<pre.*?<\/pre>/gm );
alert(arr); // null
Tôi muốn khối PRE được chọn, mặc dù nó trải dài trên các ký tự dòng mới. Tôi nghĩ cờ 'm' làm điều đó. Không làm.
Tìm thấy câu trả lời ở đây trước khi đăng. SInce Tôi nghĩ rằng tôi biết JavaScript (đọc ba cuốn sách, giờ làm việc) và không có giải pháp nào hiện có tại SO, tôi sẽ dám đăng mọi cách. ném đá vào đây
Vì vậy, giải pháp là:
var ss= "<pre>aaaa\nbbb\nccc</pre>ddd";
var arr= ss.match( /<pre[\s\S]*?<\/pre>/gm );
alert(arr); // <pre>...</pre> :)
Có ai có một cách khó hiểu hơn?
Chỉnh sửa: đây là một bản sao nhưng vì nó khó tìm hơn của tôi, tôi không xóa.
Nó đề xuất [^]
như một "chấm đa dòng". Điều tôi vẫn không hiểu là tại sao [.\n]
nó không hoạt động. Đoán đây là một trong những phần đáng buồn của JavaScript ..