2013-01-07 23 views

Trả lời

8

sử dụng regex:

"testestestestt testestestes <img src='image.jpg'>".match(/<img/) 
2
var str = "testestestestt testestestes <img src='image.jpg'>"; 
var hasImg = !!$('<div />').html(str).find('img').length 
+0

Điều này sẽ cố gắng tải hình ảnh khi bạn thêm nó vào div. –

+2

Mặc dù điều này sẽ cố gắng tải hình ảnh khi được thêm vào div, đó là câu trả lời duy nhất thực sự kiểm tra sự tồn tại của một phần tử img thay vì chỉ là một chuỗi "img" hoặc một biến thể của nó. – sachleen

1

Rõ ràng, các biểu thức chính quy không khuyên bạn nên phân tích cú pháp HTML, tuy nhiên, tùy thuộc vào cách bạn đang sử dụng, bạn có thể muốn được assu màu đỏ rằng các thẻ img có một thẻ kết thúc tương ứng. Đây là một biểu hiện một chút mạnh mẽ hơn bình thường cho rằng:

if("<img>TestString</img>".match(/<img[^<]*>[\w\d]*<\/img>|<img[^\/]*\/>/i)) 
{ 
    alert('matched'); 
} 
else 
    alert('nope'); 

khớp Test Cases:

- blahsdkfajsldkfj<img blah src=\"\">iImmage123dfasdfsa</img> 
- blahsdkfajsldkfj<img>iImmage123dfasdfsa</img>asdfas 
- <img src=\"\"></img> 
- <img></img> 
- <img /> 

Test Cases khớp:

- <img (other regex would match this) 
- <img> 

Khi bạn kết hợp nó, bạn có thể dễ dàng xử lý nó với sau đó, trình phân tích cú pháp XML hoặc HTML sẽ kiểm tra xem nó có thuộc tính src hay không.

+0

Hmm điều này mang lại cho tôi luôn luôn rỗng cho loại thẻ img: '' testestestestestes '' – tomekfranek

+0

@regedarek Hãy chắc chắn rằng bạn không có thẻ như thế này ' 'bởi vì nếu bạn làm điều này' 'không cần thiết cho một thẻ đóng '' –

Các vấn đề liên quan