搜索框输入文字查询数据,需要匹配文字高亮显示

移动端开发经常遇到在搜索框输入文字查询数据,为提高易用性,需要匹配文字高亮显示,

一、不区分大小写

brightenKeyword(val, keyword) {
        val = val + '';
       if (val.indexOf(keyword) !== -1 && keyword !== '') {
          return val.replace(keyword, '<font color="#248adf">' + keyword + '</font>')
        } else {
          return val;
        }
        },

同样有些情况需要做到,在搜索输入时是忽略字母大小写的情况,那么高亮显示也需要忽略大小写
二、应用正则表达式,区分大小写

brightenKeyword(val, keyword) {
        var thizz = this
        val = val + '';
        const Reg = new RegExp(keyword, 'i')
        if (val) {
            // 这里为什么使用$&不使用keyword,因为这里使用正则表达式不区分大小写,如果是文本时大写,搜索的关键字是小写也是会被匹配的,这样匹配替换掉的话,文本内的文字会被替换成搜索的keyword,也就是改成了小写,这样不太合理
            // const resCurrent = val.replace(Reg, `<span style="color: #000;background-color: orange;">${keyword}</span>`)
            const resCurrent = val.replace(Reg, `<span style="color: #248adf;background-color: white;">$&</span>`)
            return resCurrent
          
        }
        },
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值