我在这个论坛上看到了一个接近我的"请求"但还不够 (Regexp to capture string between delimiters)。
我的问题是:我有一个HTML页面,我只会获得所有" img"这个页面的标签,并将它们放在一个数组中而不使用cheerio(我使用节点js)。
问题是我宁愿排除分隔符。 我怎么能解决这个问题?
答案 0 :(得分:0)
是的,这可以使用正则表达式,但是使用本机DOM方法会更容易(并且可能更快但不要引用我)。让我们从正则表达式方法开始。我们可以使用捕获组轻松解析src
标记的img
:
var html = `test<div>hello</div>
<img src="first">
<img class="test" src="second" data-lang="en">
test
<img src="third" >`;
var srcs = [];
html.replace(/<img[^<>]*src=['"](.*?)['"][^<>]*>/gm, (m, $1) => { srcs.push($1) })
console.log(srcs);
&#13;
然而,更好的方法是使用getElementsByTagName
:
(注意以下内容将获得某种父域URL,因为srcs是相对/假的,但你明白了)
var srcs = [].slice.call(document.getElementsByTagName('img')).map(img => img.src);
console.log(srcs);
&#13;
test<div>hello</div>
<img src="first">
<img class="test" src="second" data-lang="en">
test
<img src="third" >
&#13;