时间:2021-05-26
网上看到很多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中实现搜索结果中关键词高亮显示,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对网站的支持!
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
本文实例讲述了jquery实现页面关键词高亮显示的方法。分享给大家供大家参考。具体分析如下:通过jquery对页面搜索关键词进行高亮显示支持中文多词页面中高亮显
本文实例讲述了php站内搜索关键词变亮的实现方法。分享给大家供大家参考。具体分析如下:我们这个做法是把搜索结果出来,与搜索关键词相同的替换成高亮的字,我们会用到
复制代码代码如下:JS关键词高亮/**参数说明:*obj:对象,要进行高亮显示的html标签节点.*hlWords:字符串,要进行高亮的关键词词,使用竖杠(|)
帝国CMS默认的搜索结果页面没有关键字高亮效果,对此用户体验并不理想!本文讲述了帝国CMS实现搜索结果显示页关键字高亮的方法,对于遇到这类问题的朋友可以参考借鉴
本文主要介绍的是php实现多关键字加亮功能,可以实现在搜索的时候进行高亮提醒,具体实现代码如下:项目结构:搜索结果:高亮显示项目所需数据库结构:实现代码:con