JavaScript 筛选数组里字符串不区分大小写的原生实现方法,Intl.Collator

工作时发现了一个原生国际化API: Intl,是international缩写的意思(写这句话有助于理解)
Intl 目前一共六个构造函数属性和两个静态方法,本章使用的是 Collator 属性和它的compare方法

使用方法是 new Intl.Collator().compare()

Intl.Collator(locales,options),(本地化国家代码 , 配置项对象)

compare(string1, string2) 接受两个参数,string1 > string2 会返回 1 ,小于返回 -1, 等于返回 0

以下是具体用法

    const arr = ["Congrès", "congres", "Assemblée", "poisson"];
                                      //中国...
    const collator = new Intl.Collator("zh-CN", {
        sensitivity: "base",   // 不区分大小写和音标
    });
    const compareTool = "congres"; //对比的值
    const matches = arr.filter((v) => collator.compare(v, compareTool) === 0);
                        //ES6的方法只要表达式返回true就会返回该值
    
     matches: ["Congrès","congres"] //这样就可实现筛选不区分大小写音标之类的值了

以下是Collator的options有哪些配置项,分别代表的意思

    {
        localeMatcher:"lookup" || "best fit" //使用的 local 的匹配算法,默认值是 best fit
        usage: "sort" || "search" //比较是用于排序还是用于搜索匹配的字符串,默认为sort
        sensitivity: "base" || "accent" || "case" || "variant"
                    //base: 只有字母不同的比较不相等。例子:`a ≠ b`, `a = á`, `a = A`
                    //accent: 字母和各种音标比较不相等。例如:`a ≠ b`, `a ≠ á`, `a = A`
                    //case: 不同的字母或大小写比较不相等。例如: `a ≠ b`, `a = á`, `a ≠ A`。
                    //variant: 字母,口音和其他变音符号、或大小写,也可以考虑其他差异。例如: `a ≠ b`, `a ≠ á`, `a ≠ A`.
        variant:"sort" //默认值使用 sort;它的 locale 依赖于使用 search
        ignorePunctuation: true || false //是否应忽略标点,默认值为false
        caseFirst: "upper" || "lower" || false  //首先排序大写或者小写
        numeric: true || false //是否应使用数字对照,使得1<2<10,默认值为false
    }
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

王圣熙

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值