<textarea name="textarea1">
:<LOOP1  ChannelID=1111 Count=15 TitleLength=200>
<td><LOOP2 ChannelID=20390 Count=20 TitleLength=100>123456</Loop2></Loop1>
<LOOP1  ChannelID=2222 Count=16 TitleLength=300>
<td><LOOP2 ChannelID=20333 Count=20 TitleLength=100>654321</Loop2></Loop1>
</textarea>
<script language=javascript>
var str=document.getElementById("textarea1").value
re=/<loop1\s[^>]+>([\s\S](?!(<loop1)))+<\/loop1>/ig
a=str.match(re)
for(var i=0;i<a.length;i++)
{
alert(a[i])
}
</script>

解决方案 »

  1.   

    http://www.esoftnow.com/bbs/dispbbs.asp?boardID=6&ID=72&page=1
      

  2.   

    用非贪婪式匹配:<SCRIPT LANGUAGE="JavaScript">
    <!--
    var s = "<LOOP1  ChannelID=1111 Count=15 TitleLength=200><td><LOOP2 ChannelID=20390 Count=20 TitleLength=100>123456</Loop2></Loop1><LOOP1  ChannelID=2222 Count=16 TitleLength=300><td><LOOP2 ChannelID=20333 Count=20 TitleLength=100>654321</Loop2></Loop1>";
    var r = /<loop1\s[^>]+>[\s\S]+?<\/loop1>/gi;  //这个与你的正则只是多了一个 ? 而已
    var a = s.match(r);
    alert(a[0]);
    alert(a[1]);
    //-->
    </SCRIPT>
      

  3.   

    hehe,还是被你先发现了,我也发现了。
      

  4.   

    明白了,谢谢天外水火。给分。
    还有梅花,MUA 一个~~~~~