我正在尝试在 JavaScript 中执行一个简单的正则表达式,但它不起作用。
HTML:
<div id="content">
<p><img class="inline-image" src="1.jpg" data-frame="full" alt="" /></p>
<p><img class="inline-image" src="2.jpg" data-frame="half" /></p>
<p><img src="2.jpg" /></p>
</div>
JS:
var content = document.getElementById('content').innerHTML,
matches = content.match(/<img(.+)data-frame(.+)>/);
for(var i=0; i < matches.length; i++) {
alert( matches[i] )
}
我没有得到我所期望的结果,即:
<img class="inline-image" src="2.jpg" data-frame="half" />
<img class="inline-image" src="1.jpg" data-frame="full" alt="" />
最佳答案
添加 g
标记并避免关闭 >
以避免 </p>
在你的比赛中。为了避免其他问题,如果您的 HTML 可以更加多样化,您还应该更改第一个 .+
:
matches = content.match(/<img([^>]+)data-frame([^>]+)>/g);
关于javascript - 为什么这个简单的正则表达式不起作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19797805/