1
我需要按字母顺序排序JS字符串。在英文排序是很容易的:比较和排序多种语言的字符串
sortArr.sort(function (a , b) {
return a > b ? 1 : -1;
});
但是我正在工作的应用程序将被翻译成i.a.阿拉伯文,中文,德文,俄文和其他一些。我可以看到,即使对于非ASCII字符,结果似乎也不正确。
我根据文档发现Intl.Collator().compare
:
的Intl.Collator目的是一种用于配页,对象,使语言敏感字符串比较的构造函数。
但是,它不支持Safari和大多数移动浏览器。
有没有其他解决方案我可以使用?
编辑
有String.prototype.localeCompare()
但浏览器的支持不够好了。
有一个polyfill尝试,但polyfilling'Intl.Collator'是相当不合理的:https://github.com/andyearnshaw/Intl.js/从webkit跟踪器的这个bug来看,似乎有一些进展这个问题虽然:https://bugs.webkit.org/show_bug.cgi?id=147601对于很多情况下,做服务器端排序也可能是一个可行的解决方案。 – nils
@nils好的,我看到它有npm包,我会仔细看看。谢谢 –
Node.js支持应该在那里。我只是在节点repl中尝试了'Intl.Collator()',它似乎工作。 – nils