问题很简单,假设以下字符串:
var str = '<a href="aaaa">aaaaa</a><a href="bb">b\'s</a>'
你如何提取href的值。我会想像
var arr = str.match(/(?:href=")(\w+)/g) ;
--> ["href="aaaa", "href="bb"]
我当然想要
["aaaa", "bb"]
没有 /g 它会接近,但它只匹配“aaaa”。任何建议如何解决这个问题?
谢谢!
问题很简单,假设以下字符串:
var str = '<a href="aaaa">aaaaa</a><a href="bb">b\'s</a>'
你如何提取href的值。我会想像
var arr = str.match(/(?:href=")(\w+)/g) ;
--> ["href="aaaa", "href="bb"]
我当然想要
["aaaa", "bb"]
没有 /g 它会接近,但它只匹配“aaaa”。任何建议如何解决这个问题?
谢谢!
因为 Javascript 没有后视功能,所以这可能是您想要的。自然会有更优雅的解决方案:
input.match(/<[^href|/]*(href[\s]*=[\s]*")([^"]+)(?=">)/g).map(
function(x){return x.split('href')[1].replace(/[^"]+"(.*)/,'$1');
})
此外,您最好获得一个 HTML 解析插件。并使用它提取您需要的属性。
干杯。
用 JS 解析 DOM 非常简单。
var str = '<a href="aaaa">aaaaa</a><a href="bb">b\'s</a>',
help = document.createElement('div');
helper.innerHTML = str;
Array.prototype.forEach.call(help.querySelectorAll("a[href]"), function (elem) {
console.log(elem.getAttribute('href'));
});