在JavaScript中检查字符串是否相等的正确方法是什么?
当前回答
字符串对象可以使用JSON.stringify()技巧检查。
var me = new String(“me”); var u = new String(“me”); var isEquel = JSON.stringify(me) === JSON.stringify(you); console.log(isEquel);
其他回答
考虑到这两个字符串可能都非常大,有两种主要的方法按位搜索和localeCompare
我推荐这个函数
function compareLargeStrings(a,b){
if (a.length !== b.length) {
return false;
}
return a.localeCompare(b) === 0;
}
在javascript中实际上有两种方法可以创建字符串。
var str = 'Javascript';这将创建一个基本字符串值。 var obj = new String('Javascript');这将创建一个包装器对象 String类型。 Typeof STR //字符串 Typeof obj //对象
因此,检查是否相等的最好方法是使用===操作符,因为它检查两个操作数的值和类型。
如果你想检查两个对象是否相等,那么使用String.prototype.valueOf是正确的方法。
new String('javascript').valueOf() == new String('javascript').valueOf()
还要考虑["foo", "bar"] == "foo,bar"。
如果知道它们是字符串,则不需要检查类型。
"a" == "b"
但是,请注意字符串对象是不相等的。
new String("a") == new String("a")
将返回false。
调用valueOf()方法将其转换为String对象的原语,
new String("a").valueOf() == new String("a").valueOf()
将返回true
让我想到这个问题的是填充和空白
检查我的箱子
if (title === "LastName")
doSomething();
标题是"姓"
也许你需要像这样使用修剪函数
var title = $(this).text().trim();