跳到主要内容

LocaleCompare

在 uni-app 中实现稳定的中文拼音排序(兼容 App/小程序)

今天在做开发时,同事提出前端能不能直接对一些内容做排序,不需要依靠后端返回的拼音来做。我一开始还不太明白怎么做,那么就需要交给万能的 claude 大神,果不其然,给出了一个"完美"的方案,那就使用localeCompare方法,这个方法能支持实现排序,然后我又去查询了解这个方法,在 MDN 这个网站中找到了对这个 localeCompare API 的解释描述。 在仔细看完后我发现了一个问题,这个方法在webview中不一定适配,恰好我的运行环境是 app,需要在手机上运行,虽然我在电脑上运行过了是正常的,于是我打包一个 wgt 包进行更新,果然有问题,这个名称排序乱七八糟的。根本不能使用。 为什么不能直接用 localeCompare? #那是为什么不能直接用 localeCompare 呢?这是因为浏览器内置了完整的 Intl / 本地化数据,可以进行语言敏感的比较(也可直接用 Intl.Collator)。
Uniapp LocaleCompare