代码之家  ›  专栏  ›  技术社区  ›  Junior Mayhé

使用javascript正则表达式过滤HTML

  •  0
  • Junior Mayhé  · 技术社区  · 16 年前

    早上好

    有没有聪明的方法 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"];
    

    中的源HTML字符串 spans 变量是否可以缩进。

    提前谢谢

    2 回复  |  直到 16 年前
        1
  •  1
  •   Spudley Pat    16 年前

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

    regex = /RemoveProductFromSelection\('(\d+)'\)/g;
    
    while (match = regex.exec(spans)) {
       console.dir(match);
    }
    

    注:我用过 console.dir() 在这里以易于阅读的格式输出结果。 console.dir()。 是Firebug中的调试函数;如果不使用Firebug,则需要使用其他方法来查看结果。

        2
  •  0
  •   Junior Mayhé    16 年前

    嘿,史普德利,这是我到目前为止所得到的。

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