首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >按字母顺序比较2个字符串以进行排序

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

Stack Overflow用户
提问于 2012-04-18 04:00:50
回答 4查看 126.2K关注 0票数 124

我正在尝试按字母顺序比较两个字符串,以便进行排序。例如,我希望有一个像if('aaaa' < 'ab')这样的布尔检查。我试过了,但它没有给我正确的结果,所以我猜这不是正确的语法。我如何在jquery或Javascript中做到这一点?

EN

回答 4

Stack Overflow用户

发布于 2016-01-14 07:38:52

您确实说过比较是为了排序的目的。那么我建议使用localeCompare

代码语言:javascript
复制
"a".localeCompare("b");

如果返回"a" < "b"10,则返回-1,否则返回Array.prototype.sort()

请记住,排序依赖于区域设置。例如,在德语中,äa的变体,因此"ä".localeCompare("b", "de-DE")返回-1。在瑞典语中,ä是字母表中的最后一个字母,因此"ä".localeCompare("b", "se-SE")返回1

如果没有为localeCompare设置第二个参数,则使用浏览器的区域设置。在我的经验中,这从来不是我想要的,因为它将与服务器不同地排序,服务器为所有用户提供固定的区域设置。

此外,如果要排序的内容包含数字,则可能需要:

代码语言:javascript
复制
"a5b".localeCompare("a21b", undefined, { numeric: true })

这将返回-1,识别出5作为一个数字小于21。如果没有{ numeric: true },它将返回1,因为"2“在"5”之前排序。在许多实际应用程序中,用户期望"a5b“出现在"a21b”之前。

票数 176
EN

Stack Overflow用户

发布于 2013-07-28 15:29:42

请记住,像"x“> "X”这样的字符串比较是区分大小写的

代码语言:javascript
复制
"aa" < "ab" //true
"aa" < "Ab" //false

可以使用.toLowerCase()进行比较,而不区分大小写。

票数 32
EN

Stack Overflow用户

发布于 2016-09-13 04:13:23

"a".localeCompare("b")实际上应该返回-1,因为ab之前排序

http://www.w3schools.com/jsref/jsref_localecompare.asp

票数 8
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10198257

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档