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}`
      const reg = new RegExp(keyword, 'gi')
      return content.replace(reg, val)
    }

引用:

测试模板
', '测试', "span")}}>

你可能感兴趣的:(react.js,数学建模,前端)