原始HTML上的正则表达式

时间:2014-09-17 09:01:29

标签: javascript regex

我在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中删除一些单/双引号,斜杠?

2 个答案:

答案 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