从字符串中删除图像元素

我有一个字符串,其中包含存储在var中的HTML图像元素。

我想从字符串中删除图像元素。

我试过了: var content = content.replace(//,"");

和: var content = content.find("img").remove(); 但没有运气。

任何人都可以帮助我吗?

谢谢

 var content = content.replace(/]*>/g,""); 

[^>]*表示除>之外的任意数量的字符。 如果使用.+ ,则如果有多个标记,则替换操作会立即删除它们,包括它们之间的任何内容。 默认情况下操作是贪婪的,这意味着它们使用最大可能的有效匹配。

/g结尾意味着替换所有出现的事件(默认情况下,它只删除第一次出现)。

使用text()函数,它将删除所有HTML标签!

 var content = $("

"+content+"

").text();
 $('

').html(content).find('img').remove().end().html()

以下正则表达式应该做到这一点:

 var content = content.replace(/"']*((("[^"]*")|('[^']*'))[^"'>]*)*>/g,""); 

它首先匹配 。 然后[^>"']*匹配除>"'之外的任何字符。 然后(("[^"]*")|('[^']*'))匹配两个"中间有任何字符(除了"本身,这部分[^"]* )或相同的东西,但有两个'字符。

一个例子是"asf<>!('"'akl>"

除了>"'任何次数之外,再次出现任何字符。当正则表达式在一组单引号或双引号之外找到>时,它会结束。

这将考虑在@Derek朕会功夫指出的属性字符串中有>字符,因此在以下测试场景中匹配并删除所有四个图像标记:

 >:) Some text between  More text between  

这当然受到了@Matt Coughlin的回答的启发。

这对你有用吗?:

 var content = content.replace(/]*>/g, '') 

您可以将文本作为DOM元素加载,然后使用jQuery查找所有图像并将其删除。 我通常尝试将XML(在本例中为html)视为XML,而不是尝试解析字符串。

 var element = $('

My paragraph has images like this and this

'); element.find('img').remove(); newText = element.html(); console.log(newText);

我现在在IE中……这很好用,但我的标签是大写的(在使用innerHTML之后,我认为)…所以我添加了“i”以使其不区分大小写。 现在Chrome和IE很高兴。

 var content = content.replace(/]*>/gi,""); 

要在没有正则表达式或库(读取jQuery)的情况下执行此操作,您可以使用DOMParser来解析您的字符串,然后使用纯JS进行任何操作并重新序列化以获取字符串。