我有一個字符串,其中包含存儲在var中的HTML圖像元素。從字符串中刪除圖像元素
我想從字符串中刪除圖像元素。
我曾嘗試:var content = content.replace(/<img.+>/,"");
和:var content = content.find("img").remove();
,但沒有運氣。
任何人都可以幫助我嗎?
感謝
我有一個字符串,其中包含存儲在var中的HTML圖像元素。從字符串中刪除圖像元素
我想從字符串中刪除圖像元素。
我曾嘗試:var content = content.replace(/<img.+>/,"");
和:var content = content.find("img").remove();
,但沒有運氣。
任何人都可以幫助我嗎?
感謝
var content = content.replace(/<img[^>]*>/g,"");
[^>]*
指任何數目比>
其他字符的。如果您使用.+
代替,則如果有多個標籤,則替換操作會一次全部刪除它們,包括它們之間的任何內容。操作默認爲貪婪,意味着它們使用最大可能的有效匹配。
/g
最後意味着替換所有的事件(默認情況下,它只刪除第一次出現)。
太棒了!那就做到了!謝謝 – MeltingDog
**注意:**如果'img'是這樣:'
@Derek,它需要一個'end()'函數:'var content = $(content).find(」img「)。remove()。end()。 html();',根據@Scott Evernden的回答。 –
使用text()
功能,它會刪除所有的HTML標籤!
var content = $("<p>"+content+"</p>").text();
哦,這很酷!從來不知道。 – senfo
謝謝 - 但我需要保留所有其他HTML標記 - 只是不是img – MeltingDog
這是否對你的工作?:
var content = content.replace(/<img[^>]*>/g, '')
它需要一個/ /或它只能刪除一個img標記。 –
$('<p>').html(content).find('img').remove().end().html()
不錯的使用'end()' –
你可以加載文本作爲一個DOM元素,然後使用jQuery查找所有圖片和刪除它們。我通常嘗試將XML(本例中爲html)視爲XML,而不嘗試通過字符串進行解析。
var element = $('<p>My paragraph has images like this <img src="foo"/> and this <img src="bar"/></p>');
element.find('img').remove();
newText = element.html();
console.log(newText);
var content = content.replace(/<img[^>"']*((("[^"]*")|('[^']*'))[^"'>]*)*>/g,"");
它首先匹配<img
。然後[^>"']*
匹配除>
,"
和'
以外的任何字符的任意次數。然後(("[^"]*")|('[^']*'))
匹配兩個"
之間的任何字符(除了"
本身,這是這部分[^"]*
)或相同的東西,但有兩個'
字符。
一個例子是
"asf<>!('"
或'akl>"<?'
。
這是再其次,除了>
,"
和'
任意次數任意字符。正則表達式在一組單引號或雙引號之外發現>
時結束。
這然後帳戶具有屬性字符串內>
字符,如由@Derek 朕會功夫指出並因此將在下面的測試場景匹配,並刪除所有四個圖像標籤:
<img src="blah.png" title=">:(" alt=">:)" /> Some text between <img src="blah.png" title="<img" /> More text between <img /><img src='asdf>' title="sf>">
當然,這是通過激發@Matt Coughlin的回答。
我現在在IE中......這個工作很好,但我的標籤以大寫形式出現(在使用innerHTML後,我認爲)...所以我添加了「i」以使其不區分大小寫。現在Chrome和IE很開心。
var content = content.replace(/<img[^>]*>/gi,"");
其中是字符串? – thecodeparadox