有个需求是将用户按照国际化排序,复杂的更准确的方法没找到,勉强找到一个符合需求可以用的,即使用 Intl.Collator
进行国际化排序
// 假设 items 是一个包含多种语言字符串的数组
let items = [
"こんにちは", // 日语
"안녕하세요", // 韩文
"你好", // 中文
// ...其他字符串
];
// 创建一个 Collator 实例,可以指定语言环境和选项,'zh', 'ko', 'ja'置顶了排序和顺序
let collator = new Intl.Collator(['zh', 'ko', 'ja'], {
localeMatcher: 'best fit', // 匹配最佳可用的语言环境
usage: 'sort', // 用于排序
sensitivity: 'base' // 基本敏感度,忽略变音符号和大小写
});
items.sort((a,b)=>collator.compare(a, b));
但是这种写的,多语言还是会存在问题,即为俄语,法语等等像英文字符一样的语言,可能会被按照'en'排序,以及部分日本汉字也会被排到中文中... (问题未解决,如果您有更好的办法,提前感谢您给指条明路,哈哈哈哈,3Q~)