假如有一段html字符串,想用js直接匹配到<img>標(biāo)簽中的 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>'
想得到的結(jié)果
[ '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的正則不支持逆序環(huán)視,想不出還有什么方法可以直接匹配到src的值,求大牛指教。
擁有18年軟件開發(fā)和IT教學(xué)經(jīng)驗(yàn)。曾任多家上市公司技術(shù)總監(jiān)、架構(gòu)師、項(xiàng)目經(jīng)理、高級(jí)軟件工程師等職務(wù)。 網(wǎng)絡(luò)人氣名人講師,...
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 模式不支持輸出匹配結(jié)果的,你只能使用 while + exec 才行。
var?str?=?'\ ????'; var?patt?=?/\ ????
this?is?a?pic
\ ????\ ????
this?is?pic?b
\]+src=['"]([^'"]+)['"]+/g; var?result?=?[],?temp; while(?(temp=?patt.exec(str))?!=?null?)?{ ????result.push(temp[1]); } console.log(result);
不好意思,JS這部分我現(xiàn)在也是自己學(xué),誤會(huì)了你的意思。我去查了一下,有這樣一個(gè)思路,你先匹配出img,然后再從中匹配出src