js匹配<img>标签中的 src属性的值的正则怎么写?
高洛峰
高洛峰 2016-11-10 14:34:07
0
2
1067

假如有一段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的值,求大牛指教。

高洛峰
高洛峰

拥有18年软件开发和IT教学经验。曾任多家上市公司技术总监、架构师、项目经理、高级软件工程师等职务。 网络人气名人讲师,...

全部回复(2)
学霸
var frag = document.createElement('div');
frag.innerHTML = '
\     \     

this is a pic

\     \     

this is pic b

\
'; var result = [].map.call(frag.querySelectorAll('img'), function(img){ return img.src }); console.log(result);

另外,match 的话 g 模式不支持输出匹配结果的,你只能使用 while + exec 才行。

var str = '
\     \     

this is a pic

\     \     

this is pic b

\
'; var patt = /]+src=['"]([^'"]+)['"]+/g; var result = [], temp; while( (temp= patt.exec(str)) != null ) {     result.push(temp[1]); } console.log(result);


三叔

不好意思,JS这部分我现在也是自己学,误会了你的意思。我去查了一下,有这样一个思路,你先匹配出img,然后再从中匹配出src


热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板