http://jsfiddle.net/C4K6c/

我正在尝试用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);


Demonstration

关于javascript - 为什么这个简单的REGEX不起作用?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/19797805/

10-09 23:42
查看更多