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中cookie对象用法实例分析
Jan 30 Javascript
javascript url几种编码方式详解
Jun 06 Javascript
JS使用正则表达式实现关键字替换加粗功能示例
Aug 03 Javascript
关于Javascript回调函数的一个妙用
Aug 29 Javascript
Bootstrap中datetimepicker使用小结
Dec 28 Javascript
js仿京东轮播效果 选项卡套选项卡使用
Jan 12 Javascript
浅谈MUI框架中加载外部网页或服务器数据的方法
Jan 31 Javascript
Node.js 使用request模块下载文件的实例
Sep 05 Javascript
详解angular2.x创建项目入门指令
Oct 11 Javascript
Vue实现本地购物车功能
Dec 05 Javascript
JSON.stringify()方法讲解
Jan 31 Javascript
Vue-cli3多页面配置详解
Mar 22 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
第十三节--对象串行化
2006/11/16 PHP
PHP Trait功能与用法实例分析
2020/06/03 PHP
JavaScript的面向对象(一)
2006/11/09 Javascript
用javascript实现兼容IE7的类库 IE7_0_9.zip提供下载
2007/08/08 Javascript
JS input 数字验证代码
2009/07/30 Javascript
IE6下opacity与JQuery的奇妙结合
2013/03/01 Javascript
Jquery获取元素的父容器对象示例代码
2014/02/10 Javascript
jquery实现不同大小浏览器使用不同的css样式表的方法
2014/04/02 Javascript
jQuery实现仿Google首页拖动效果的方法
2015/05/04 Javascript
jQuery实现在新增加的元素上添加事件方法案例分析
2017/02/09 Javascript
bootstrap为水平排列的表单和内联表单设置可选的图标
2017/02/15 Javascript
微信小程序实现瀑布流布局与无限加载的方法详解
2017/05/12 Javascript
webpack 模块热替换原理
2018/04/09 Javascript
理顺8个版本vue的区别(小结)
2018/09/17 Javascript
微信小程序云开发如何实现数据库自动备份实现
2019/08/16 Javascript
vue radio单选框,获取当前项(每一项)的value值操作
2020/09/10 Javascript
python网络编程调用recv函数完整接收数据的三种方法
2017/03/31 Python
python 平衡二叉树实现代码示例
2018/07/07 Python
python使用time、datetime返回工作日列表实例代码
2019/05/09 Python
Python自动抢红包教程详解
2019/06/11 Python
浅析Windows 嵌入python解释器的过程
2019/07/26 Python
Python Handler处理器和自定义Opener原理详解
2020/03/05 Python
解决Python在导入文件时的FileNotFoundError问题
2020/04/10 Python
python 检测图片是否有马赛克
2020/12/01 Python
Python3压缩和解压缩实现代码
2021/03/01 Python
浅谈html5增强的页面元素
2016/06/14 HTML / CSS
h5使用canvas画布实现手势解锁
2019/01/04 HTML / CSS
Sandro Paris美国官网:典雅别致的法国时尚服饰品牌
2017/12/26 全球购物
Elemental Herbology官网:英国美容品牌
2019/04/27 全球购物
Speedo速比涛德国官方网站:世界领先的泳装品牌
2019/08/26 全球购物
用缩写的指针比较"if(p)" 检查空指针是否可靠?如果空指针的内部表达不是0会怎么样?
2014/01/05 面试题
运动会通讯稿50字
2014/01/30 职场文书
舞蹈兴趣小组活动总结
2014/07/07 职场文书
社区党的群众路线教育实践活动剖析材料
2014/10/09 职场文书
当幸福来敲门英文观后感
2015/06/01 职场文书
golang DNS服务器的简单实现操作
2021/04/30 Golang