使用Intl.Collat​​or对带有标点符号的字符串进行排序在浏览器中不一致

时间:2015-11-25 14:36:56

标签: javascript sorting collation

在我的项目中,数据的排序是使用javascript完成的。但我们遇到了一个问题,其中带有连字符( - )的字符串在浏览器(主要是IE,Chrome,Firefox)中的排序不一致。我们使用Intl.Collat​​or作为比较器,但发现比较器在浏览器时有不同的行为标点符号和符号,主要是连字符( - )。

这是一个示例代码

window.strings = ko.observableArray([ "con", "coop", "co-op", "co&op", "co!op"]);
var Collator = new Intl.Collator("en-u-kn");

strings.sort(Collator.compare);

ko.applyBindings();
<script src="https://cdnjs.cloudflare.com/ajax/libs/knockout/3.2.0/knockout-min.js"></script>

<ul data-bind="foreach:strings">
   <li data-bind="text:$data"></li>
</ul>

在chrome中,它首先使用符号放置字符串。在IE11中,它将“co-op”放在“coop”之后。

Intl.Collat​​or中是否有语言环境或选项,以便符号/标点符号在浏览器之间一致排序?

0 个答案:

没有答案