有如下代码<div id="leftmenu_${orderid}" style="display:none;">
    <div class="leftmenu" onMouseOver="this.className='leftmenu_hover'" onMouseOut="this.className='leftmenu'">
          <a href="${href}" target="frmright">${label}</a>
    </div>                                                     
</div>
第一个正则表达式:要把里面的DIV取出来,如下<div class="leftmenu" onMouseOver="this.className='leftmenu_hover'" onMouseOut="this.className='leftmenu'">
          <a href="${href}" target="frmright">${label}</a>
    </div>   
第二个正则表达式:要把外面的div表达式,取出来,并把里面的div表达式换成这个字符 $tempInsidetemplate,像下面这样  <div id="leftmenu_${orderid}" style="display:none;">
          $tempInsidetemplate                                             
  </div>
求高手指点。

解决方案 »

  1.   

    var str = "<div id=\"leftmenu_${orderid}\" style=\"display:none;\">\n\
        <div class=\"leftmenu\" onMouseOver=\"this.className='leftmenu_hover'\" onMouseOut=\"this.className='leftmenu'\">\n\
              <a href=\"${href}\" target=\"frmright\">${label}</a>\n\
        </div>\n\
    </div>";alert(str.match(/<div[^>]*>\s*(<div[^>]*>[\s\S]*<\/div>)\s*<\/div>/)[1]);    
    alert(str.replace(/(<div[^>]*>\s*)(<div[^>]*>[\s\S]*<\/div>)(\s*<\/div>)/, "$1$tempInsidetemplate$3"));
      

  2.   

    好久不用了  都忘了  第一个 : <div[^>]*>(?!<div[^>]*>)[\s\S]*?</div>
      

  3.   

    话说为什么要用正则表达式呢?第一个
    <script type="text/javascript"> 
    var test = "<div id=\"leftmenu_${orderid}\" style=\"display:none;\">\n\
        <div class=\"leftmenu\" onMouseOver=\"this.className='leftmenu_hover'\" onMouseOut=\"this.className='leftmenu'\">\n\
              <a href=\"${href}\" target=\"frmright\">${label}</a>\n\
        </div>\n\
    </div>";
    var reg = /<div[^>]*>(?:(?!<\/?div)[\s\S])*<\/div>/i;
    document.getElementById("result").value = test.match(reg);
    </script>第二个
    <script type="text/javascript"> 
    var test = "<div id=\"leftmenu_${orderid}\" style=\"display:none;\">\n\
        <div class=\"leftmenu\" onMouseOver=\"this.className='leftmenu_hover'\" onMouseOut=\"this.className='leftmenu'\">\n\
              <a href=\"${href}\" target=\"frmright\">${label}</a>\n\
        </div>\n\
    </div>";
    var reg = /<div[^>]*>(?:(?!<\/?div)[\s\S])*<\/div>/i;
    document.getElementById("result").value = test.replace(reg, "$tempInsidetemplate");
    </script>
      

  4.   

    楼主这个根本不需要正则,在js有append的函数,在html也可以用el表达式