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 相关文章推荐
JQuery 学习笔记 选择器之六
Jul 23 Javascript
jQuery如何获取同一个类标签的所有值(默认无法获取)
Sep 25 Javascript
jQuery 获取多选框的值及多选框中文的函数
May 16 Javascript
js拖拽功能实现代码解析
Nov 28 Javascript
Bootstrap笔记—折叠实例代码
Mar 13 Javascript
JS正则获取HTML元素的方法
Mar 31 Javascript
Angular 表单控件示例代码
Jun 26 Javascript
JS按条件 serialize() 对应标签的使用方法
Jul 24 Javascript
微信公众号H5支付接口调用方法
Jan 10 Javascript
vue项目前端错误收集之sentry教程详解
May 27 Javascript
JavaScript this在函数中的指向及实例详解
Oct 14 Javascript
详解vue之自行实现派发与广播(dispatch与broadcast)
Jan 19 Vue.js
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
关于时间计算的结总
2006/12/06 PHP
谷歌音乐搜索栏的提示功能php修正代码
2011/05/09 PHP
php判断手机访问还是电脑访问示例分享
2014/01/20 PHP
php的GD库imagettftext函数解决中文乱码问题
2015/01/24 PHP
linux下实现定时执行php脚本
2015/02/13 PHP
php中关于socket的系列函数总结
2015/05/18 PHP
PHPStrom 新建FTP项目以及在线操作教程
2016/10/16 PHP
thinkPHP线上自动加载异常与修复方法实例分析
2016/12/01 PHP
PHP实现的常规正则验证helper公共类完整实例
2017/04/27 PHP
thinkPHP3.2使用RBAC实现权限管理的实现
2019/08/27 PHP
关于Anemometer图形化显示MySQL慢日志的工具搭建及使用的详细介绍
2020/07/13 PHP
node.js中RPC(远程过程调用)的实现原理介绍
2014/12/05 Javascript
Bootstrap每天必学之js插件
2015/11/30 Javascript
js浏览器html5表单验证
2016/10/17 Javascript
JS判断指定dom元素是否在屏幕内的方法实例
2017/01/23 Javascript
jQuery日程管理控件glDatePicker用法详解
2017/03/29 jQuery
Node.js中流(stream)的使用方法示例
2017/07/16 Javascript
jQuery+datatables插件实现ajax加载数据与增删改查功能示例
2018/04/17 jQuery
vue-cli3脚手架的配置及使用教程
2018/08/28 Javascript
python中的yield使用方法
2014/02/11 Python
Python 实现数据库更新脚本的生成方法
2017/07/09 Python
python安装pil库方法及代码
2019/06/25 Python
Django 静态文件配置过程详解
2019/07/23 Python
树莓派安装OpenCV3完整过程的实现
2019/10/10 Python
python+mysql实现个人论文管理系统
2019/10/25 Python
Django之全局使用request.user.username的实例详解
2020/05/14 Python
怎样从/向数据文件读/写结构
2014/11/23 面试题
一家外企的面试题目(C/C++面试题,C语言面试题)
2014/03/24 面试题
请介绍一下WSDL的文档结构
2013/03/17 面试题
工作的心得体会
2013/12/31 职场文书
优秀团支部事迹材料
2014/02/08 职场文书
局领导领导班子四风对照检查材料
2014/09/27 职场文书
服务员岗位职责
2015/02/03 职场文书
爱国主义影片观后感
2015/06/18 职场文书
2015年法律事务部工作总结
2015/07/27 职场文书
党风廉政教育心得体会2016
2016/01/22 职场文书