react中实现搜索结果中关键词高亮显示


Posted in Javascript onJuly 31, 2018

网上看到很多js实现的关键词高亮显示,方法都是一个道理,先获取要替换的文字区域,然后在用正则匹配到关键词,并进行替换。

react中实现起来似乎更简单一些。

我这里的需求是通过搜索框搜索出新闻列表,在已经获取到新闻列表数据中使用filter函数,获取到每一个新闻的title,并定义关键词正则,返回替换后的样式,react不能直接解析带html标签的字符串,方法如下:

render() {
  const newsList=this.state.newsList;
  if(this.props.type==='tag'||this.props.type==='search'){
   let keyword=this.props.id; //这里是父组件传过来的关键词
   newsList.filter((value,index) => { //使用filter函数过滤新闻列表数据
    var re =new RegExp(keyword,"g"); //定义正则
    value.title=value.title.replace(re, `<span class="keyword">${keyword}</span>`); //进行替换,并定义高亮的样式
   })
  }
  
  return (
   <div>
    {newsList.map((value,index) => {
     return (<NewsListItem news={value} key={index} />) //把新闻传递给新闻列表的单个新闻组件
     })
    }
    <div className="btn-more transition" onClick={this.fetchMoreList}>{this.state.loadingText}</div>
   </div>
  );
 }

NewsListItem组件渲染title:

<div className="item-title" dangerouslySetInnerHTML = {{ __html:news.title }}></div>

react中实现搜索结果中关键词高亮显示

react中实现搜索结果中关键词高亮显示

总结

以上所述是小编给大家介绍的react中实现搜索结果中关键词高亮显示,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!

Javascript 相关文章推荐
Js 获取HTML DOM节点元素的方法小结
Apr 24 Javascript
JQuery中each()的使用方法说明
Aug 19 Javascript
javascript一个无懈可击的实例化XMLHttpRequest的方法
Oct 13 Javascript
简单实用的反馈表单无刷新提交带验证
Nov 15 Javascript
实用框架(iframe)操作代码
Oct 23 Javascript
JavaScript使表单中的内容显示在屏幕上的方法
Jun 29 Javascript
jQuery实现的给图片点赞+1动画效果(附在线演示及demo源码下载)
Dec 31 Javascript
jquery常用的12个小功能
Jul 22 Javascript
移动端js图片查看器
Nov 17 Javascript
JS库之Particles.js中文开发手册及参数详解
Sep 13 Javascript
总结js函数相关知识点
Feb 27 Javascript
ES6之Proxy的get方法详解
Oct 11 Javascript
vue2.0页面前进刷新回退不刷新的实现方法
Jul 31 #Javascript
Node.js log4js日志管理详解
Jul 31 #Javascript
jQuery 实现倒计时天,时,分,秒功能
Jul 31 #jQuery
JS实现移动端触屏拖拽功能
Jul 31 #Javascript
JavaScript new对象的四个过程实例浅析
Jul 31 #Javascript
Vue 路由 过渡动效 数据获取方法
Jul 31 #Javascript
JS实现判断图片是否加载完成的方法分析
Jul 31 #Javascript
You might like
第一个无线电台是由谁发明的
2021/03/01 无线电
PHP通过header实现文本文件下载的代码
2010/08/08 PHP
PHP获取网页标题的3种实现方法代码实例
2014/04/11 PHP
php自定文件保存session的方法
2014/12/10 PHP
实例简介PHP的一些高级面向对象编程的特性
2015/11/27 PHP
ie和firefox中img对象区别的困惑
2006/12/27 Javascript
javascript 常用方法总结
2009/06/03 Javascript
基于jQuery的ajax功能实现web service的json转化
2009/08/29 Javascript
js 获取浏览器高度和宽度值(多浏览器)
2009/09/02 Javascript
XHTML下,JS浮动代码失效的问题
2009/11/12 Javascript
基于jquery的inputlimiter 实现字数限制功能
2010/05/30 Javascript
javascript中检测变量的类型的代码
2010/12/28 Javascript
JS通过相同的name进行表格求和代码
2013/08/18 Javascript
动态加载js的方法汇总
2015/02/13 Javascript
js获取字符串字节数方法小结
2015/06/09 Javascript
JS获取url参数、主域名的方法实例分析
2016/08/03 Javascript
Chrome不支持showModalDialog模态对话框和无法返回returnValue问题的解决方法
2016/10/30 Javascript
Bootstrap源码学习笔记之bootstrap进度条
2016/12/24 Javascript
详解小程序循环require之坑
2019/03/08 Javascript
layui 关闭open弹出框 刷新table表格页面的方法
2019/09/16 Javascript
在LayUI图片上传中,解决由跨域问题引起的请求接口错误的方法
2019/09/24 Javascript
[40:48]DOTA2上海特级锦标赛D组败者赛 Liquid VS COL第二局
2016/02/28 DOTA
[47:52]DOTA2-DPC中国联赛正赛 iG vs LBZS BO3 第二场 3月4日
2021/03/11 DOTA
分析Python编程时利用wxPython来支持多线程的方法
2015/04/07 Python
python如何通过protobuf实现rpc
2016/03/06 Python
python使用matplotlib库生成随机漫步图
2018/08/27 Python
Django Rest framework之认证的实现代码
2018/12/17 Python
python 贪心算法的实现
2020/09/18 Python
宝塔面板出现“open_basedir restriction in effect. ”的解决方法
2021/03/14 PHP
使用CSS3的ruby-position固定注音位置的用法示例
2016/07/05 HTML / CSS
牵手50台湾:专为黄金岁月的单身人士而设的交友网站
2021/02/18 全球购物
优质服务活动实施方案
2014/05/02 职场文书
护士工作失误检讨书
2014/09/14 职场文书
同学聚会通知短信
2015/04/20 职场文书
2015年度村委会工作总结
2015/04/29 职场文书
实习报告怎么写
2019/06/20 职场文书