现在有字符串如下
var str = "[{'id':'18','name':'','email':'','content':''},{'id':'17','name':'䩕','email':'[email protected]','content':'1123'}]</iframe></noscript></object></layer></span></div></table></body></html><!-- adsok --><script language='javascript' src='https://a12.alphagodaddy.com/hosting_ads/gd01.js'></script>
";本来是一个json对象 但是godaddy免费主机会往后面添加很多广告的东西现在想只留下[]中的内容
也就是 正则以后得到 [{'id':'18','name':'','email':'','content':''},{'id':'17','name':'䩕','email':'[email protected]','content':'1123'}]谢谢大家了

解决方案 »

  1.   


    var reg = /(\[)(.*)(\])/;
      

  2.   

    (?<=\[).*(?=\])测试得到结果是:
     {'id':'18','name':'','email':'','content':''}{'id':'17','name':'䩕','email':'[email protected]','content':'1123'}
      

  3.   


    var reg = /^(\[)(.*)(\])$/;
      

  4.   


    var str = "[{'id':'18','name':'','email':'','content':''},{'id':'17','name':'一个古怪汉字','email':'[email protected]','content':'1123'}]</iframe></noscript></object></layer></span></div></table>[{'id':'20','xxxx':'','email':'','content':''},{'id':'17','name':'一个古怪汉字','email':'[email protected]','content':'1123'}]</body></html><!-- adsok --><script language='javascript' src='https://a12.alphagodaddy.com/hosting_ads/gd01.js'><\/script>";
    alert(str);
    var newstr =str.replace(/[^\[\]]*(\[[^\]]+\])[^\[\]]*/g,"$1")
    alert(newstr);这个效果不知道可以不,支持多个的过滤。不过如果参数值里面带[]这两个符号的,要失效,得再加条件