Tôi đang cố trả lại nội dung của bất kỳ thẻ nào trong phần nội dung văn bản. Tôi hiện đang sử dụng biểu thức sau, nhưng nó chỉ ghi lại nội dung của thẻ đầu tiên và bỏ qua bất kỳ nội dung nào khác sau đó.Cách lấy regex để khớp với nhiều thẻ tập lệnh?
Dưới đây là một mẫu của các html:
<script type="text/javascript">
alert('1');
</script>
<div>Test</div>
<script type="text/javascript">
alert('2');
</script>
regex của tôi trông như thế này:
//scripttext contains the sample
re = /<script\b[^>]*>([\s\S]*?)<\/script>/gm;
var scripts = re.exec(scripttext);
Khi tôi chạy trên IE6, nó sẽ trả về 2 trận đấu. Thẻ đầu tiên chứa thẻ đầy đủ, cảnh báo chứa thứ 2 ('1').
Khi tôi chạy nó trên http://www.pagecolumn.com/tool/regtest.htm, nó cung cấp cho tôi 2 kết quả, mỗi thẻ chỉ chứa các thẻ tập lệnh.
Bạn có thực sự viết regex trong javascript? Bạn có thể bao gồm mã phù hợp không. – cdm9002
Sử dụng RegexBuddy 3.2.1, tính năng này hoạt động tốt. Nó nắm bắt nội dung của cả hai thẻ. – Phoexo
Tôi đang sử dụng/gm. Tôi sửa đổi hơi regexp một chút. Bây giờ nó trở về 2 kết quả, mỗi kết quả có chứa một thẻ script nhưng nó bao gồm html. \t . Chết tiệt, hư hỏng lần nữa! '); ' – Svante
@Svante thì sao? :) – kangax