如果条件,如何比较javascript中的两个字符串

时间:2017-02-18 18:46:14

标签: javascript if-statement compare string-comparison

我无法回忆如何在if语句中比较这两个字符串。我要做的是检查我的变量compare是否等于page1page2,如果没有,请转到else语句。



var compare = "page3";

if (compare === "page1" || "page2") {
  document.body.innerHTML = "github url";
} else {
  document.body.innerHTML = "non-github url";
}




4 个答案:

答案 0 :(得分:5)

您可以检查每个选项。

if (compare === "page1" || compare === "page2") {

或者您可以使用数组并使用Array#some之类的存在量词进行检查,例如

if (["page1", "page2"].some(a => a === compare)) {



var compare = "page3";

if (compare === "page1" || compare === "page2") {
    document.body.innerHTML = "github url";
} else {
    document.body.innerHTML = "non-github url";
}




答案 1 :(得分:1)

每当您在if条件下检查多项内容时,您必须将每个条件与另一个条件分开编写。因此,测试必须写成:

// If compare equals "page1" OR compare equals "page2"
if (compare === "page1" || compare === "page2") {

当您拥有可能包含许多不同值的单个变量时,使用switch语句可能更合乎逻辑且更高效,因为它只需要查找变量的值一次。

此外,请记住字符串是文字,“page1”不等于“Page1”。要进行不区分大小写的比较,可以先强制所有值降低(或更高)大小写,然后相互检查(如此处所示):

switch (compare.toLowerCase()) {
    case "page1" :
        // Do work here
        break;
    case "page2" :
        // Do work here
        break;
    case "page3" :
        // Do work here
        break;
    default :
        // Do work here
        break;
}

答案 2 :(得分:1)

a.localeCompare(b)是比较大字符串的另一种很酷的方法

function areEqual(a, b){


  if (a.length !== b.length) {
         return false;
  }

  return a.localeCompare(b) === 0;
}


if(areEqual(a,b)){...}

答案 3 :(得分:1)

尝试

if( ["page1", "page2"].includes(compare) ){...}

var compare = "page3";

if( ["page1", "page2"].includes(compare) ) {
  document.body.innerHTML = "github url";
} else {
  document.body.innerHTML = "non-github url";
}