我正在返回一个字符串形式的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”)是错误的。
如果字符串相等则字符串不正确,我该如何解决呢?
答案 0 :(得分:4)
我认为原因是你的服务器输出msg
永远不会完全“false”,因为PHP脚本中添加了一些行结尾或类似的东西(您可以检查msg
是否具有您希望验证此假设的长度)。在这种情况下,您可以尝试使用它:
if (msg.match(/false/)) {
如果需要,它会进行一些不太严格的比较,确保输出包含字符串“false”(在任何位置)。如果它有效,我建议你使用这个比较:
if (msg.match(/^false$/)) {
保证false
成为文字的整行。
答案 1 :(得分:-3)
您必须使用===
来比较JavaScript中的相等性。
如果你有时间看看有关javascript的Crockford视频系列。它涵盖了这个以及许多其他javascript主题。