我有这个js代码:
result = subject.match(/<a.*class="gallery_browser_thumbnail".*href="(.+)">/i);
我希望在html源代码上获得多个标签的href 但它只显示了1个结果
如果我在模式结束时使用/ g它返回整个模式但我只想要href部分 我的意思是 - &gt; (。+)这部分
这就是我捕获html输入的方式:
var subject = String(document
.getElementsByTagName("body")[0].innerHTML);
任何帮助?
最终工作脚本:
var subject = String(document.getElementsByTagName("body")[0].innerHTML);
var regex = /<a.*class="gallery_browser_thumbnail".*href="(.+)">/gi;
var matched = null;
while (matched = regex.exec(subject)) {
alert(matched[1]);
}
答案 0 :(得分:0)
通过添加延迟量词?
来更改为延迟匹配:
result = subject.match(/<a.*?class="gallery_browser_thumbnail".*?href="(.+?)">/i);
答案 1 :(得分:0)
您可以使用exec来测试RegExp。像这样:
var subject = String(document.getElementsByTagName("body")[0].innerHTML),
regexp = /<a.*class="gallery_browser_thumbnail".*href="(.+)">/gi, //g for global match
match = regexp.exec(subject),
result = [];
while(match != null){
result.push(match[1]); // the second value is matched group
match = regexp.exec(subject);
}