javascript - 按字母顺序比较 2 个字符串以进行排序

标签 javascript jquery

我正在尝试按字母顺序比较 2 个字符串以进行排序。例如,我想要一个像 if('aaaa' < 'ab') 这样的 bool 值检查。 .我试过了,但它没有给我正确的结果,所以我猜这不是正确的语法。我如何在 jquery 或 Javascript 中执行此操作?

最佳答案

你确实说比较是为了排序。那我建议localeCompare相反:

"a".localeCompare("b");

它返回 -1"a" < "b" , 10否则,就像你需要 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/

相关文章:

javascript - 度数 unicode 显示为问号

javascript - 如何在 Ionic React 5 中触发反向重定向?

所有页面的 jQuery Mobile 全局弹出窗口

javascript - 处理 ruby​​ 中的正则表达式

jquery - 是否可以将此菜单设为垂直?

javascript - 从 Fetch 返回 HTML 有什么危险

javascript - 如何检测外部 javascript 已完成呈现其动态加载的 HTML?

javascript - 除了像 onclick 这样的委托(delegate)处理程序事件之外,Jquery 直接事件不会触发?

javascript - 删除node js中某个目录下名称以某个字符串开头的所有文件

javascript - 与 Bootstrap 表内的嵌套循环进行淘汰赛绑定(bind)