在JavaScript中检查字符串是否相等的正确方法是什么?


当前回答

考虑到这两个字符串可能都非常大,有两种主要的方法按位搜索和localeCompare

我推荐这个函数

function compareLargeStrings(a,b){
    if (a.length !== b.length) {
         return false;
    }
    return a.localeCompare(b) === 0;
}

其他回答

还要考虑["foo", "bar"] == "foo,bar"。

只是对答案做了一个补充:如果所有这些方法都返回false,即使字符串看起来是相等的,也有可能在一个字符串的左右有一个空白。因此,在比较之前,只需在字符串的末尾加上.trim():

if(s1.trim() === s2.trim())
{
    // your code
}

我花了好几个小时想弄清楚是怎么回事。 希望这对一些人有所帮助!

你可以使用==或===,但最后一个更简单(src)

A == b(和它的否定!=)

A === b(和它的否定!==)

字符串对象可以使用JSON.stringify()技巧检查。

var me = new String(“me”); var u = new String(“me”); var isEquel = JSON.stringify(me) === JSON.stringify(you); console.log(isEquel);

让我想到这个问题的是填充和空白

检查我的箱子

 if (title === "LastName")
      doSomething();

标题是"姓"

也许你需要像这样使用修剪函数

var title = $(this).text().trim();