Javascript 原始HTML上的正则表达式

Javascript 原始HTML上的正则表达式,javascript,regex,Javascript,Regex,我用javascript从一个站点获取原始html 以下是示例部分: <a href="/?Stat=5&item=10739">Coldwater</a></b> 它在regex tester()中运行良好,问题是如何在js中编写,目前我有以下代码(返回null): $.get(链接、函数(数据){ var原始=数据, pattern=/Stat=5&item=(\d.*)”>(.*)/gi, 匹配=pattern.exec(原始); consol

我用javascript从一个站点获取原始html

以下是示例部分:

<a href="/?Stat=5&item=10739">Coldwater</a></b>
它在regex tester()中运行良好,问题是如何在js中编写,目前我有以下代码(返回null):

$.get(链接、函数(数据){
var原始=数据,
pattern=/Stat=5&item=(\d.*)”>(.*)/gi,
匹配=pattern.exec(原始);
console.log(匹配项);
});

可能我必须从原始html中删除一些单引号/双引号、斜杠?

这里不需要使用正则表达式。您可以通过创建新元素来实现同样的效果

var a = document.createElement('div'); 
a.innerHTML = yourString;
var result = a.children[0].href;

这里不需要使用正则表达式,您可以通过创建新元素来实现

var a = document.createElement('div'); 
a.innerHTML = yourString;
var result = a.children[0].href;

删除字符串
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
>var str='';
未定义
>console.log(/Stat=5&item=(\d.*)”>(.*)/gi.exec(str)[0]);
Stat=5和item=10739“>冷水
>console.log(/Stat=5&item=(\d.*)”>(.*)/gi.exec(str)[1]);
10739
>console.log(/Stat=5&item=(\d.*)”>(.*)/gi.exec(str)[2]);
冷水

删除字符串前的空格
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
>var str='';
未定义
>console.log(/Stat=5&item=(\d.*)”>(.*)/gi.exec(str)[0]);
Stat=5和item=10739“>冷水
>console.log(/Stat=5&item=(\d.*)”>(.*)/gi.exec(str)[1]);
10739
>console.log(/Stat=5&item=(\d.*)”>(.*)/gi.exec(str)[2]);
冷水

HTML是一种树形数据结构——考虑将字符串装入DOM(无论是在浏览器上还是在服务器上JSDOM,取决于您的JavaScript在何处运行)在代码< >代码>之前,为什么有一个空间?可能的副本,但是严重的,不要使用正则表达式,看看MR.GRIN所说的。把你的数据放到一个新的元素中,得到所有的<代码> A/<代码>标签>代码> HeRF > SHTML是一个树形的数据结构——考虑将字符串加载到DOM中。(在浏览器中或服务器上的JSDOM中,具体取决于javaScript的运行位置)并使用DOM方法查询。为什么在
S
之前有空格?可能是重复的,但认真地说,不要使用正则表达式,看看格林先生说了什么。将您的数据放到一个新元素中,并获取所有
a
标记的
href
SSI既然这是更好的解决方案,我接受这个答案,谢谢。因为这是更好的解决方案,我同意请回答这个问题,谢谢。