有什么可奇怪的?
g 不在 [,:{}\[\]0-9.\-+Eaeflnr-u \n\r\t] 中

解决方案 »

  1.   

    \
           var a="{\"error\":0,\"data\":{a:\"notice\"}}";
           var b="{\"error\":0,\"data\":{a:\"hhh\"}}";
           
           var r=/^("(\.|[^"\\n\r])*?"|[,:{}\[\]0-9.\-+Eaeflnr-u \n\r\t])+?$/;
        
        var R1=r.test(a);
        var R2=r.test(b);那楼上看看这个!!!
      

  2.   

    试一下就知道了。   var r=/^("(\.|[^"\\n\r])*?"|[,:{}\[\]0-9.\-+Eaeflnr-u \n\r\t])+?$/;这个东西是做json字串校验的,可是如上的b可以通过,但a却无法通过。着实郁闷!!!!
    忘牛人指教一二!!!
      

  3.   

    我只是把 notice换成了ggg就能通过!实在令人不解。
      

  4.   


           var r=/^(\"(\.|[^\"\n\r])*?\"|[,:{}\[\]0-9.\-+Eaeflnr-u \n\r\t])+?$/;
      

  5.   

    晕,这个前面还有一句的,你抄人人家半句当不通过了.
          var a="{\"error\":0,\"data\":{a:\"notice\"}}";
           var b="{\"error\":0,\"data\":{a:\"ggg\"}}";
           
           var r=/^("(\.|[^"\\n\r])*?"|[,:{}\[\]0-9.\-+Eaeflnr-u \n\r\t])+?$/;
      a=  a.replace(/\\./g,'@').replace(/"[^"\\\n\r]*"/g,'');
      b=b.replace(/\\./g,'@').replace(/"[^"\\\n\r]*"/g,'');
        alert(r.test(a));
       alert(r.test(b));
    这样就可以了