javascript - 为什么这个简单的正则表达式不起作用?

标签 javascript regex

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 - 为什么这个简单的正则表达式不起作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19797805/

相关文章:

javascript - 使用 Javascript 延迟页面关闭?

javascript - 如何在 iPad 和 iPhone 上完美显示全屏谷歌地图?

javascript - 循环json数据然后用php发送到数据库

regex - 使用 sed 编辑 JSON 文件

java - 屏蔽字符串的一部分

ios - 如何在 Swift 中进行反向正则表达式匹配 [regex negation]?

javascript - Rails 选择表单 : displaying and using select form value before submit?

javascript - Vue 过滤对象属性

java - 正则表达式密码验证添加下划线,如特殊符号

javascript - 字符串 (x,y) 到对象 {x, y}