Javascript中稳定/中立/不区分区域性的语言环境?

Javascript中稳定/中立/不区分区域性的语言环境?,javascript,locale,Javascript,Locale,我希望在Javascript中有一个稳定的、定义良好的排序顺序 它可以是任何定义的语言环境,但关键是让代码说 “这里使用的只是一些中性排序顺序” Java和C#有各自的和 我们已被用于这一目的 至少现在看来没有 提供这样的选项。我的答案是使用“en”和 根据我下面的测试,en产生最一致的结果 下面是一个将其与localeCompare一起使用的示例: "å".localeCompare("ä", "en") 据我所知,und(未确定的缩写) (也许en-US-u-va-posix)应该是对原始

我希望在Javascript中有一个稳定的、定义良好的排序顺序

它可以是任何定义的语言环境,但关键是让代码说 “这里使用的只是一些中性排序顺序”

Java和C#有各自的和 我们已被用于这一目的

至少现在看来没有 提供这样的选项。

我的答案是使用
“en”

根据我下面的测试,
en
产生最一致的结果

下面是一个将其与
localeCompare
一起使用的示例:

"å".localeCompare("ä", "en")
据我所知,
und
(未确定的缩写) (也许
en-US-u-va-posix
)应该是对原始问题的更好答案,但是
und
在不同的情况下表现不同 Firefox(NodeJS中
en-US-u-va-posix的行为取决于ICU数据的存在)

也许如果你没有碰到火狐问题,考虑一下 使用

und
或仅使用无参数形式传达 区域设置并不重要的想法

我在研究这一点时学到了一些相关的东西(在这里添加它们,以防其他人也进入同一个兔子洞):

  • 有很多有用的评论
  • 从中我了解到有一些“特殊”的地区
  • 使用较旧的浏览器可能没有希望。引用Mozilla文档:“在忽略区域设置和选项参数的旧实现中,使用的区域设置和排序顺序完全依赖于实现。”
  • NodeJS似乎使用了与区域设置相关的功能
  • icu项目在网上有这个
  • 普通排序()与其他选项不同,但在我测试的平台上似乎是稳定的

  • 字符正如@Bergi在上面指出的,在许多情况下,您可以在字符串上使用
    a

    (在这种简单的情况下,
    .sort()
    当然是等效的和更简单的。)

    当你说排序顺序时,如何使用localeCompare对区域设置进行排序?@IngoBürk是的。我正在尝试使用localeCompare。我注意到还有其他的选择可以设定中立的标准是不要使用一些地方。你认为“中立”是什么?只需使用标准字符串比较,这是定义良好且不区分区域性的。@Bergi谢谢。我就是这个意思。我不知道/不记得
    
    
    ["foo", "bar"].sort((a, b)=> a < b ? -1 : 1)