解决方案 »

  1.   


        var s = '<tr...  ...name="trName">..<td />... (中间xx无tr)...</tr>'
        + '<tr>..<td />... (中间fefeaa无tr)...</tr>'
        + '<tr...  ...name="trName">..<td />... (中间xx无tr)...</tr>';
        var reg = /<tr[^>]+name="trName"[^>]*>([\s\S]+?)<\/tr>/gi
        var mc = s.match(reg);
        if(mc)console.log(mc.length)//2
      

  2.   

    多问进一步,如果开始标签(比如是tr)不知道的情况。结尾怎么写才能匹配开始的标签(这里是tr,如果是td)呢?
    是不是这样:
    /(<tr[^>])+name="trName"[^>]*>([\s\S]+?)<\/?1>/gi 
      

  3.   


    不嵌套的标签可以使用([\s\S]+?)非贪婪模式,碰到就结束,嵌套的话正则比较麻烦,用dom操作比较简单