var str='xxxx<form><p> a </p> <a> b </a> <input type= "text" value= "c"/></form>aaa';
var re=new RegExp(/<form>([\s\S]+?)<\/form>/);
if(re.test(str))
str=RegExp.$1;
document.write(str);

解决方案 »

  1.   

    var str='xxxx<form name="a" id="a" action="a.asp"><p> a </p> <a> b </a> <input type= "text" value= "c"/></form>aaa';
    var re=new RegExp(/(<form)([\s\S]+?)(>)([\s\S]+?)(<\/form>)/);
    if(re.test(str))
    str=RegExp.$4;
    document.write(str);
    这个比原来那个好点...
      

  2.   

    ...........优化得不怎么样
    re = /<form[^>]*>([\s\S]*?)<\/form>/ig
    while(re.test(str))
    {
    alert(RegExp.$1);
    }