我在javascript中从一个网站获取原始html。
以下是示例部分:
<a href="/?Stat=5&item=10739">Coldwater</a></b>
现在我使用exec
通过模式提取一些数据:
Stat=5&item=(\d.*)">(.*)<\/a><\/b>
它在正则表达式测试器(link)中工作正常,问题是如何用js编写,目前我有这个代码(返回null):
$.get(link,function(data) {
var raw = data,
pattern = / Stat=5&item=(\d.*)">(.*)<\/a><\/b>/gi,
matches = pattern.exec(raw);
console.log(matches);
});
可能我必须从原始html中删除一些单/双引号,斜杠?
答案 0 :(得分:7)
这里没有必要使用正则表达式。您可以通过创建新元素来实现相同目的。
var a = document.createElement('div');
a.innerHTML = yourString;
var result = a.children[0].href;
答案 1 :(得分:1)
删除字符串Stat
之前的空格,
> var str = '<a href="/?Stat=5&item=10739">Coldwater</a></b>';
undefined
> console.log(/Stat=5&item=(\d.*)">(.*)<\/a><\/b>/gi.exec(str)[0]);
Stat=5&item=10739">Coldwater</a></b>
> console.log(/Stat=5&item=(\d.*)">(.*)<\/a><\/b>/gi.exec(str)[1]);
10739
> console.log(/Stat=5&item=(\d.*)">(.*)<\/a><\/b>/gi.exec(str)[2]);
Coldwater