我正在尝试按字母顺序比较两个字符串以进行排序。例如,我想要进行布尔检查,例如if('aaaa' < 'ab')
。我尝试过,但它没有给我正确的结果,所以我想这不是正确的语法。如何在 jquery 或 Javascript 中执行此操作?
您确实说比较是为了排序目的。那我建议语言环境比较 https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/localeCompare反而:
"a".localeCompare("b");
它返回-1
since "a" < "b"
, 1
or 0
否则,就像你需要的那样Array.prototype.sort() https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/sort
请记住,排序取决于区域设置。例如。在德国,ä
是一个变体a
, so "ä".localeCompare("b", "de-DE")
回报-1
。在瑞典语中,ä
是字母表中最后的字母之一,所以"ä".localeCompare("b", "sv-SE")
回报1
.
没有第二个参数localeCompare
,使用浏览器的区域设置。根据我的经验,这从来都不是我想要的,因为这样它的排序方式就会与服务器不同,服务器对所有用户都有固定的区域设置。
另外,如果您要排序的内容包含数字,您可能需要:
"a5b".localeCompare("a21b", undefined, { numeric: true })
返回 -1,表明 5 作为一个数字小于 21。{ numeric: true }
它返回 1,因为“2”排在“5”之前。在许多实际应用程序中,用户期望“a5b”出现在“a21b”之前。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)