在jQuery中比较从php返回的字符串不会';行不通

在jQuery中比较从php返回的字符串不会';行不通,php,jquery,html,string,if-statement,Php,Jquery,Html,String,If Statement,我从php返回一个字符串,并将其与jQuery中的另一个字符串进行比较。我100%确定字符串确实匹配(好吧,至少是相同的值…),但我的if子句仍然不这么认为 这是我的php脚本中设置返回值的部分: if (!$result){ echo "false"; exit(); } 这是执行匹配的jQuery: $.post("registeraccount.php",$(this).serialize(),function(msg){ //al

我从php返回一个字符串,并将其与jQuery中的另一个字符串进行比较。我100%确定字符串确实匹配(好吧,至少是相同的值…),但我的if子句仍然不这么认为

这是我的php脚本中设置返回值的部分:

if (!$result){
        echo "false";
        exit();
    }
这是执行匹配的jQuery:

$.post("registeraccount.php",$(this).serialize(),function(msg){
        //alert the response from the server
        alert(msg + " = " + (msg == "false"));
        if(msg == "false"){
            $("#adminarea").html("Error");

        }else{
            $("#adminarea").html("Success");
        }

   });
不管字符串是否相等,打印在网页上的总是“成功”

在警报中,我得到以下结果“false=false”。因此,(msg==“false”)为false


当字符串相等时,为什么字符串不是真的?我如何修复它?

您必须使用
==
来比较JavaScript中的相等性


如果您有时间,可以看一看基于javascript的Crockford视频系列。它涵盖了这一点和许多其他javascript主题。

我想原因是,由于PHP脚本中添加了一些行结尾或类似的内容,服务器输出的
msg
从来都不是“false”(您可以检查
msg
是否具有验证此假设所需的长度)。在这种情况下,您可以尝试使用以下方法:

 if (msg.match(/false/)) {
如果需要的话,它会进行稍微不那么严格的比较,确保输出包含字符串“false”(在任何位置)。如果有效,我建议您使用以下比较:

 if (msg.match(/^false$/)) {

这保证了
false
是文本的一整行。

你确定“msg”是字符串吗?你在
msg
中检查过零散的空格吗?@silverstrike,“echo”false“不是意味着它是字符串吗?@mu太短了,我如何检查零散的空格?不一定。服务器回显单词false,但您是否传递false或“false”?不起作用。我不认为这是必要的,对吗?谷歌搜索javascript中的字符串比较,大多数帖子都说“==”。或者
if($.trim(msg)=“false”){
或者
if(msg.indexOf('false')>-1){
@sergio,msg.match(/false/)有效,但是msg.match(/^false$/)无效。谢谢!