使用Javascript正则表达式过滤HTML

时间:2010-10-26 13:09:49

标签: javascript html regex filtering

早上好

是否有一种聪明的方法可以使用 javascript 正则表达式来清理此字符串:

var spans = "<SPAN><A href="javascript:sel.RemoveProductFromSelection('12372');"><IMG src="remove.gif" width=18> </A>Mirage - JOY</SPAN>
<SPAN><A href="javascript:sel.RemoveProductFromSelection('12427');"><IMG src="remove.gif" width=18> </A>Nikon - D40 </SPAN>
<SPAN><A href="javascript:sel.RemoveProductFromSelection('12438');"><IMG src="remove.gif" width=18> </A>Mitsuca - DS 6083 </SPAN>"

并生成如下结果数组:

var filtered = ["12372","12427","12438"];

spans变量中的源html字符串可以缩进或不缩进。

提前致谢

2 个答案:

答案 0 :(得分:1)

我建议只匹配脚本部分。像这样:

regex = /RemoveProductFromSelection\('(\d+)'\)/g;

while (match = regex.exec(spans)) {
   console.dir(match);
}

注意:我在这里使用console.dir()以易于阅读的格式输出结果。 console.dir()是Firebug中的调试功能;如果你没有使用Firebug,你需要使用不同的方法来查看结果。

答案 1 :(得分:0)

嘿Spudley,这是我到目前为止所得到的

var filtered= spans.match(/\('(\d+)'\)/g);
for (var k=0;k<filtered.length;k++){
   filtered[k] = filtered[k].match(/\d+/g);
   alert(filtered[k]);
}