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 相关文章推荐
JavaScript 私有成员分析
Jan 13 Javascript
JavaScript 一行代码,轻松搞定浮动快捷留言-V2升级版
Apr 02 Javascript
jquery动画1.加载指示器
Aug 24 Javascript
window.print打印指定div实例代码
Dec 13 Javascript
使用jQuery mobile库检测url绝对地址和相对地址的方法
Dec 04 Javascript
JavaScript文档碎片操作实例分析
Dec 12 Javascript
jquery select插件异步实时搜索实例代码
Oct 20 jQuery
vue.js通过路由实现经典的三栏布局实例代码
Jul 08 Javascript
vue+webpack中配置ESLint
Nov 07 Javascript
Vue axios全局拦截 get请求、post请求、配置请求的实例代码
Nov 28 Javascript
Element 默认勾选表格 toggleRowSelection的实现
Sep 04 Javascript
OpenLayer3自定义测量控件MeasureTool
Sep 28 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
PHP 常见郁闷问题答解
2006/11/25 PHP
PHP中防止直接访问或查看或下载config.php文件的方法
2012/07/07 PHP
Yii PHP Framework实用入门教程(详细介绍)
2013/06/18 PHP
php操作xml
2013/10/27 PHP
解决laravel(5.5)访问public报错的问题
2019/10/12 PHP
js获取IP和PcName(IE)在vs中可用
2013/08/02 Javascript
javascript图片相似度算法实现 js实现直方图和向量算法
2014/01/14 Javascript
Jquery修改页面标题title其它JS失效的解决方法
2014/10/31 Javascript
JavaScript精炼之构造函数 Constructor及Constructor属性详解
2015/11/05 Javascript
javascript中FOREACH数组方法使用示例
2016/03/01 Javascript
浅谈JavaScript 浏览器对象
2016/06/03 Javascript
如何清除IE10+ input X 文本框的叉叉和密码输入框的眼睛图标
2016/12/21 Javascript
在点击div中的p时,如何阻止事件冒泡
2017/02/07 Javascript
Mobile Web开发基础之四--处理手机设备的横竖屏问题
2017/08/11 Javascript
浅谈AngularJs 双向绑定原理(数据绑定机制)
2017/12/07 Javascript
vue组件中使用iframe元素的示例代码
2017/12/13 Javascript
用vue写一个仿简书的轮播图的示例代码
2018/03/13 Javascript
Vue实现PopupWindow组件详解
2018/04/28 Javascript
使用webpack搭建react开发环境的方法
2018/05/15 Javascript
vue移动端微信授权登录插件封装的实例
2018/08/28 Javascript
python使用Flask框架获取用户IP地址的方法
2015/03/21 Python
原生python实现knn分类算法
2019/10/24 Python
基于python2.7实现图形密码生成器的实例代码
2019/11/05 Python
Python面向对象之私有属性和私有方法应用案例分析
2019/12/31 Python
Python sep参数使用方法详解
2020/02/12 Python
浅谈Python中的异常和JSON读写数据的实现
2020/02/27 Python
vue学习笔记之动态组件和v-once指令简单示例
2020/02/29 Python
pytorch中index_select()的用法详解
2021/01/06 Python
举例详解HTML5中使用JSON格式提交表单
2015/06/16 HTML / CSS
美国领先的户外服装与装备用品店:Moosejaw
2016/08/25 全球购物
小区消防演习方案
2014/02/21 职场文书
《猫》教学反思
2014/02/26 职场文书
房展策划方案
2014/06/07 职场文书
联欢会开场白
2015/06/01 职场文书
cf战队宣传语
2015/07/13 职场文书
nginx proxy_cache 缓存配置详解
2021/03/31 Servers