如何正确比较JavaScript中的2个字符串?

时间:2015-01-13 14:45:44

标签: javascript

我是JavaScript中的新手,我在比较2个字符串时遇到了问题。

进入一个函数我有这个代码:

var selectedProjectStatusText = selectedProjectStatus.options[selectedProjectStatus.selectedIndex].text;

alert("== " + selectedProjectStatusText == "-- Please Select --");
alert("=== " + selectedProjectStatusText === "-- Please Select --");

我正在使用alert()函数来尝试如何使用字符串比较器。

问题是当alert()变量包含selectedProjectStatusText字符串时,-- Please Select --都说我为FALSE。

为什么呢?我错过了什么?可能是问题的原因是什么?我该如何解决?我错过了什么?

3 个答案:

答案 0 :(得分:7)

您需要从条件语句的开头删除"=== " +,或者用括号"=== " + (condition)括起来试试这个:

alert(selectedProjectStatusText == "-- Please Select --");

http://jsfiddle.net/eceb5bpx/

如果您想查看字符串contains' - 请选择 - '那么您的情况不正确,您应该使用

alert(string.indexOf('-- Please Select --') > -1);

答案 1 :(得分:7)

尝试将条件放在括号中,以便在字符串连接之前对其进行评估。



var selectedProjectStatusText = "-- Please Select --";    

alert("== " + (selectedProjectStatusText == "-- Please Select --"));
alert("=== " + (selectedProjectStatusText === "-- Please Select --"));




答案 2 :(得分:1)

您可以使用JS concat()函数以您使用的格式显示比较结果:

See JSFiddle

var selectedProjectStatusText = "-- Please Select --";
alert("== ".concat(selectedProjectStatusText == "-- Please Select --"));
alert("=== ".concat(selectedProjectStatusText === "-- Please Select --"));

“==”:等于,而 “===”:等值和相等的类型