假如有一段html字符串,想用js直接匹配到<img>标签中的 src属性的值的正则怎么写?可以考虑带有class、alt这些属性。
'<div><img src="http://www.baidu.com/pic/a.jpg" alt="" /><p>this is a pic</p><img src= "http://www.baidu.com/pic/b.jpg"/><p>this is pic b</p></div>'
想得到的结果
[ 'http://www.baidu.com/pic/a.jpg', 'http://www.baidu.com/pic/b.jpg' ]
而不是
[ '<img src="http://www.baidu.com/pic/a.jpg" alt="" />', '<img src="http://www.baidu.com/pic/b.jpg" />' ]
js的正则不支持逆序环视,想不出还有什么方法可以直接匹配到src的值,求大牛指教。
欧阳克2016-11-10 14:35:17
var frag = document.createElement('div'); frag.innerHTML = '\ \'; var result = [].map.call(frag.querySelectorAll('img'), function(img){ return img.src }); console.log(result);this is a pic
\ \this is pic b
\
另外,match 的话 g 模式不支持输出匹配结果的,你只能使用 while + exec 才行。
var str = '\ \'; var patt = /]+src=['"]([^'"]+)['"]+/g; var result = [], temp; while( (temp= patt.exec(str)) != null ) { result.push(temp[1]); } console.log(result);this is a pic
\ \this is pic b
\