2

使用 Javascript 和正则表达式,给出:

stringHTML = "bla bla bla <img src='img1.png' /> bla bla bla 
<img src='img2.png' /> bla bla bla <img src='img3.png' />";

你如何删除

<img src='img1.png' />

stringHTML 中的第一个 img 标签

4

2 回答 2

4

像这样的东西会起作用:

var output = stringHTML.replace(/<img src='img1.png' \/>/, '');

这将仅找到您指定的确切子字符串(文字<img src='img1.png' />)并将其替换为空字符串。请注意,正斜杠需要在模式中进行转义,因为 JavaScript 使用正斜杠来分隔正则表达式文字。

要从输入字符串中删除第一个<img>标签,无论路径或其他属性如何,都可以使用:

var output = stringHTML.replace(/<img.*?\/>/, ''); 

这将找到一个字面<img量,后跟零个或多个任意字符,非贪婪地,后跟一个字面量/>. 请注意,如果没有全局开关 ( g),它只会替换第一次出现

于 2013-09-20T21:51:22.187 回答
3

JavaScript 内置了出色的 DOM 解析功能。

x = document.createElement("x");
x.innerHTML = stringHTML;

x.removeChild(x.querySelector("img"));

请注意,querySelector("img")选择第一张图像。如果您特别需要选择图像,src=img1.png可以使用属性选择器。如果查询选择器不可用,您将不得不遍历使用getElementsByTagName.

http://jsfiddle.net/ZsqK5/

于 2013-09-20T21:54:10.450 回答