react搜索关键字高亮

需求:

模糊搜索下拉列表选择选项根据关键字高亮显示

思路:

利用正则从列表匹配到关键词,再使用标签包含关键词,

给标签添加color属性,使用react富文本渲染方式进行渲染

 /**
     * 关键字变色
     * @params content 内容
     * @params keyword 关键词
     * @params tagName 标签名
    */
    tagKeywords(content, keyword, tagName) {
      if (!content) {
        return content
      }
      const a = content.toLowerCase()
      const b = keyword.toLowerCase()
      const indexof = a.indexOf(b)
      const c = indexof > -1 ? content.substr(indexof, keyword.length) : ''
      const val = `<${tagName} style="color:#F40;">${c}</${tagName}>`
      const reg = new RegExp(keyword, 'gi')
      return content.replace(reg, val)
    }

引用:

<div dangerouslySetInnerHTML={{__html: this.tagKeywords('<div>测试模板</div>', '测试', "span")}}></div>

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值