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 相关文章推荐
prototype 源码中文说明之 prototype.js
Sep 22 Javascript
gridpanel动态加载数据的实例代码
Jul 18 Javascript
JS.findElementById()使用介绍
Sep 21 Javascript
iframe里面的元素触发父窗口元素事件的jquery代码
Oct 19 Javascript
jQuery中prepend()方法使用详解
Aug 11 Javascript
JS实现的3D拖拽翻页效果代码
Oct 31 Javascript
Bootstrap基本插件学习笔记之折叠(22)
Dec 08 Javascript
JS验证字符串功能
Feb 22 Javascript
浅谈JavaScript中的属性:如何遍历属性
Sep 14 Javascript
vue-cli脚手架搭建的项目去除eslint验证的方法
Sep 29 Javascript
深入理解Puppeteer的入门教程和实践
Mar 05 Javascript
微信小程序工具函数封装
Oct 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的输入输出流
2007/02/14 PHP
PHP使用Mysqli类库实现完美分页效果的方法
2016/04/07 PHP
php伪静态验证码不显示的解决方案
2019/09/26 PHP
比较全面的event对像在IE与FF中的区别 推荐
2009/09/21 Javascript
jquery.ui.draggable中文文档
2009/11/24 Javascript
jquery插件制作简单示例说明
2012/02/03 Javascript
基于jquery实现的一个选择中国大学的弹框 (数据、步骤、代码)
2012/07/26 Javascript
jQuery之排序组件的深入解析
2013/06/19 Javascript
学JavaScript七大注意事项【必看】
2016/05/04 Javascript
用js读写cookie的简单方法(推荐)
2016/08/08 Javascript
AngularJS中$apply方法和$watch方法用法总结
2016/12/13 Javascript
JS正则子匹配实例分析
2016/12/22 Javascript
Bootstrap组合上、下拉框简单实现代码
2017/03/06 Javascript
JS 组件系列之Bootstrap Table 冻结列功能IE浏览器兼容性问题解决方案
2017/06/30 Javascript
JS模拟超市简易收银台小程序代码解析
2017/08/18 Javascript
JS随机排序数组实现方法分析
2017/10/11 Javascript
在Web关闭页面时发送Ajax请求的实现方法
2019/03/07 Javascript
VUE写一个简单的表格实例
2019/08/06 Javascript
用Node写一条配置环境的指令
2019/11/14 Javascript
PHP 502bad gateway原因及解决方案
2020/11/13 Javascript
[00:32]2018DOTA2亚洲邀请赛VGJ.T出场
2018/04/03 DOTA
python求众数问题实例
2014/09/26 Python
在Windows系统上搭建Nginx+Python+MySQL环境的教程
2015/12/25 Python
python增加矩阵维度的实例讲解
2018/04/04 Python
用python实现将数组元素按从小到大的顺序排列方法
2018/07/02 Python
Python分割训练集和测试集的方法示例
2019/09/19 Python
Python中的With语句的使用及原理
2020/07/29 Python
使用HTML5和CSS3表单验证功能
2017/05/05 HTML / CSS
mysql_pconnect()和mysql_connect()有什么区别
2012/05/25 面试题
Yahoo-PHP面试题4
2012/05/05 面试题
简述进程的启动、终止的方式以及如何进行进程的查看
2013/07/12 面试题
岗位职责的定义
2013/11/10 职场文书
市级青年文明号申报材料
2014/05/26 职场文书
Nginx配置https的实现
2021/11/27 Servers
实例详解Python的进程,线程和协程
2022/03/13 Python
Golang gRPC HTTP协议转换示例
2022/06/16 Golang