if(XMLHttp.readyState==4&&XMLHttp.status==200)
{
var a=XMLHttp.responseText;
a=a.replace(/\r\n/g,""); 
var b="success";
if(a!=b)
{
document.getElementById("status").innerHTML=a;
}
else
eval("alert('添加成功');window.location='test2.php';");
}后台页面时echo "success";,返回的是"\r\nsuccess",然后经过正则替换后,成了"success",但是还是和b不相等,怎么回事呀,换成什么字符都是。

解决方案 »

  1.   

    var a=XMLHttp.responseText; 这行下面加上:
    alert(a);  //弹出什么。贴出来。
      

  2.   

    这个回复不能贴图吧,我用firebug,看了,经过正则处理的a就是"success",弹窗也是success,\r\n都是不显示字符,不来也显示不了,只能查看源代码,或者firebug设置断点查看的
      

  3.   

    看一下 a和b的length属性是否相同
    如果照你说的 alert(a) 弹出的值显示的是 \r\nsuccess
    那么它实际的内容应该是
       var a = "\\r\\nsuccess";
       var b = "success";
    否则 \r\n将不会显示出来,而是以一个换行来表示
      

  4.   

    或者你可以用正则匹配来判断:  
     var b=/success/g;
        if(!b.test(a))
        {
            document.getElementById("status").innerHTML=a;
        }
        else
            eval("alert('添加成功');window.location='test2.php';");
      

  5.   

    var a=XMLHttp.responseText;
    alert('[' + a + ']');
    说说都看到了什么只有弄清楚了返回的是什么,才能判断是什么问题
    瞎猜是没有意义的
      

  6.   

    是我的这句替换有问题,a=a.replace(/\r\n/g,""); 
    将原来的\r\n替换成了"",这是个空,所以看是看不到这个字符的,但是的确不一样,因为多了一个空字符,不要这句替换语句,直接用a=a.trim();就可以去掉\r\n了
      

  7.   

    但是这trim方法,ie不兼容,直接报错停止,谷歌直接跳过,只有火狐可以,肿么办呢