在JavaScript中检查字符串是否相等的正确方法是什么?
当前回答
对于字符串,我们有一个支持的方法localCompare,它在字符串比较中非常方便。在我看来,我们应该使用它,不需要把事情复杂化。
用法:
const a = 'Hello'
const b = 'Hell'
a.localCompare(a) // 0
a.localCompare(b) // 1
b.localCompare(a) // -1
其他回答
字符串对象可以使用JSON.stringify()技巧检查。
var me = new String(“me”); var u = new String(“me”); var isEquel = JSON.stringify(me) === JSON.stringify(you); console.log(isEquel);
你可以使用==或===,但最后一个更简单(src)
A == b(和它的否定!=)
A === b(和它的否定!==)
还要考虑["foo", "bar"] == "foo,bar"。
严格的比较
要进行简单的比较,可以使用===来检查是否严格相等。正如其他人所说,这样做的优点是效率最高,并且可以减少出现错误或不确定代码的可能性。来源:MDN Web Docs:严格平等。
Var a = "hello1"; Var b = "hello2"; Console.log ("a === a?"+ (a == a) + "|"); Console.log ("a === b?"+ (a === b) + "|");
字母的比较
如果希望根据自然排序比较两个字符串,以了解一个字符串是在另一个字符串之前还是之后,请使用<、>、<=和>=操作符。来源:MDN WebDocs用于<,>,<=和>=。
Var a = "hello1"; Var b = "hello2"; Console.log ("a < a?"+ (a < a) + "|"); Console.log ("a < b?"+ (a < b) + "|"); Console.log ("a > b?"+ (a > b) +“|”); Console.log ("b > a?"+ (b > a) +“|”);
只是对答案做了一个补充:如果所有这些方法都返回false,即使字符串看起来是相等的,也有可能在一个字符串的左右有一个空白。因此,在比较之前,只需在字符串的末尾加上.trim():
if(s1.trim() === s2.trim())
{
// your code
}
我花了好几个小时想弄清楚是怎么回事。 希望这对一些人有所帮助!
推荐文章
- Javascript reduce()在对象
- 在angularJS中& vs @和=的区别是什么
- 错误"Uncaught SyntaxError:意外的标记与JSON.parse"
- JavaScript中的querySelector和querySelectorAll vs getElementsByClassName和getElementById
- 给一个数字加上st, nd, rd和th(序数)后缀
- 如何以编程方式触发引导模式?
- 如何分割逗号分隔的字符串?
- Java字符串—查看字符串是否只包含数字而不包含字母
- setTimeout带引号和不带括号的区别
- 在JS的Chrome CPU配置文件中,'self'和'total'之间的差异
- 用javascript检查输入字符串中是否包含数字
- 如何使用JavaScript分割逗号分隔字符串?
- 在Javascript中~~(“双波浪号”)做什么?
- 谷歌chrome扩展::console.log()从后台页面?
- 未捕获的SyntaxError: