我需要添加一个结束图片标记。当前的HTML:
<img class="logoEmail" src="/images/logoPDF.png">
我想要的是什么:
<img class="logoEmail" src="/images/logoPDF.png"/>
我该怎么做?
答案 0 :(得分:3)
myInput ='<img class="example1" src="/images/example1.png">';
myInput += '<img class="example2" src="/images/example2.png"/>';
result = myInput.replace(/(<img("[^"]*"|[^\/">])*)>/gi, "$1/>");
正则表达式的解释:
<img
开始
"[^"]*"
标记内的字符串。可能包含/
字符。
[^\/">]
其他任何内容(不是字符串,不是/
而不是标记的结尾)
>
IMG标记的结尾
这只会匹配未完成的代码,并会将其全部替换为/>
正如我之前所说,这不是防弹的,可能没有100%正常工作的正则表达式。
答案 1 :(得分:3)
你也可以试试这个正则表达式,
result = myInput.replace(/^([^\.]*\.[^>]*)(.*)$/g, "$1/$2");
它捕获字面上的所有字符并将其存储到一个组中。然后它再次捕获最多>
的字符并存储到另一个组中。在替换部件中捕获的组之间添加/
将为您提供所需的输出。
答案 2 :(得分:0)
可以这么简单:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Demo Replace IMG tags w/ regex</title>
<script type="text/javascript">
window.onload = function() {
document.body.innerHTML = document.body.innerHTML.replace(/(<img[^>]+)/g, "$1 /");
}
</script>
</head>
<body>
<p>Some text.</p>
<img src="images/logoPhone.jpg">
<br>
<img src="images/logoMail.png">
<p>Some more text.</p>
</body>
</html>
。
说明:
<img
:匹配必须从此开始。
[^>]
:在开始比赛之后,下一个字符可能是除了&gt;之外的任何字符
+
:一次或多次出现
g
:全球申请,第一场比赛不返回
$1
:与第一个捕获组一样(=第一组括号之间的东西)
。
请注意,无论doctype如何,Firebug都不会显示结束斜杠。但是你可以在这里看到正则表达式脚本:http://regex101.com/r/zS2zO1。