我正在尝试按字母顺序比较 2 个字符串以进行排序。例如,我想要一个像 if('aaaa' < 'ab')
这样的 bool 值检查。 .我试过了,但它没有给我正确的结果,所以我猜这不是正确的语法。我如何在 jquery 或 Javascript 中执行此操作?
最佳答案
你确实说比较是为了排序。那我建议localeCompare相反:
"a".localeCompare("b");
它返回 -1
自 "a" < "b"
, 1
或 0
否则,就像你需要 Array.prototype.sort()
请记住,排序取决于语言环境。例如。德文,ä
是 a
的变体, 所以 "ä".localeCompare("b", "de-DE")
返回 -1
.瑞典语,ä
是字母表中最后一个字母之一,所以 "ä".localeCompare("b", "se-SE")
返回 1
.
没有 localeCompare
的第二个参数, 使用浏览器的语言环境。根据我的经验,这从来都不是我想要的,因为那样的话它的排序方式将不同于服务器,后者对所有用户都有固定的语言环境。
此外,如果您要排序的内容包含数字,您可能需要:
"a5b".localeCompare("a21b", undefined, { numeric: true })
这将返回 -1,将 5 作为一个数字识别为小于 21。没有 { numeric: true }
它返回 1,因为“2”排在“5”之前。在许多实际应用中,用户希望“a5b”出现在“a21b”之前。
关于javascript - 按字母顺序比较 2 个字符串以进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10198257/