ajax返回字符串的比较

gavinloveesther 2012-04-06 10:16:52

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不相等,怎么回事呀,换成什么字符都是。
...全文
211 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
gavinloveesther 2012-04-09
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 的回复:]

是我的这句替换有问题,a=a.replace(/\r\n/g,"");
将原来的\r\n替换成了"",这是个空,所以看是看不到这个字符的,但是的确不一样,因为多了一个空字符,不要这句替换语句,直接用a=a.trim();就可以去掉\r\n了
[/Quote]
但是这trim方法,ie不兼容,直接报错停止,谷歌直接跳过,只有火狐可以,肿么办呢
gavinloveesther 2012-04-09
  • 打赏
  • 举报
回复
是我的这句替换有问题,a=a.replace(/\r\n/g,"");
将原来的\r\n替换成了"",这是个空,所以看是看不到这个字符的,但是的确不一样,因为多了一个空字符,不要这句替换语句,直接用a=a.trim();就可以去掉\r\n了
xuzuning 2012-04-07
  • 打赏
  • 举报
回复
var a=XMLHttp.responseText;
alert('[' + a + ']');
说说都看到了什么

只有弄清楚了返回的是什么,才能判断是什么问题
瞎猜是没有意义的
一起混吧 2012-04-06
  • 打赏
  • 举报
回复
或者你可以用正则匹配来判断:
var b=/success/g;
if(!b.test(a))
{
document.getElementById("status").innerHTML=a;
}
else
eval("alert('添加成功');window.location='test2.php';");
改一下昵称 2012-04-06
  • 打赏
  • 举报
回复
看一下 a和b的length属性是否相同
如果照你说的 alert(a) 弹出的值显示的是 \r\nsuccess
那么它实际的内容应该是
   var a = "\\r\\nsuccess";
var b = "success";

否则 \r\n将不会显示出来,而是以一个换行来表示
gavinloveesther 2012-04-06
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 的回复:]

var a=XMLHttp.responseText; 这行下面加上:
alert(a); //弹出什么。贴出来。
[/Quote]
这个回复不能贴图吧,我用firebug,看了,经过正则处理的a就是"success",弹窗也是success,\r\n都是不显示字符,不来也显示不了,只能查看源代码,或者firebug设置断点查看的
一起混吧 2012-04-06
  • 打赏
  • 举报
回复
var a=XMLHttp.responseText; 这行下面加上:
alert(a); //弹出什么。贴出来。

21,887

社区成员

发帖
与我相关
我的任务
社区描述
从PHP安装配置,PHP入门,PHP基础到PHP应用
社区管理员
  • 基础编程社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧