欢迎来到258分享网,纯净的网络源码分享基地!

258资源分享网

全部作品
全部作品
网站源码
微信源码
素材特效
源码插件
视频教程
建站学院
热门搜索: 织梦  农业种植  农业  安全设置  官方
258资源分享 > 建站学院 > 微信开发 > 微信小程序实时搜索并高亮关键字效果

推荐下载

HTML5响应式自适应网咯设计

2020-05-12   浏览:789

HTML5自适应律师工作室类网

2020-04-04   浏览:654

高端HTML5响应式企业通用网

2020-05-06   浏览:560

html5响应式外贸网站英文版

2020-05-08   浏览:545

HTML5影视传媒文化公司类网

2020-05-12   浏览:543

微信小程序实时搜索并高亮关键字效果

发布时间:2020-10-12  

很多项目中会有搜索,有时是要点击搜索按钮时搜索,有时是点击键盘完成搜索,还有时需要实时搜索,而高亮关键字也是一个常见的需求。

今天写一个实时搜索并高亮关键字的微信小程序demo,已上传GitHub,需要自取

微信小程序实时搜索高亮关键字demo

这是一个我项目中的截图,但是数据结构又略微有点复杂,不好演示,所以单独又写了一个demo,数据来自干活集中营 

微信小程序实时搜索并高亮关键字效果

实时搜索高亮关键字 
关键函数:将字符串使用关键字分割:

 

//返回一个使用key切割str后的数组,key仍在数组中

getHilightStrArray: function(str, key) {

return str.replace(new RegExp(`${key}`, 'g'), `%%${key}%%`).split('%%');

}

一、新建一个自定义组件,作为显示有高亮字符串的组件

1、在自定义组件wxml中循环数组并判断是否是关键字然后设置不同的class,代码如下:

 

<view> <text wx:for="{{searchArray}}" wx:key="*this" class="{{item == keyName ? 'highlight' : 'normal' }}">{{item}}</text> </view>  

2、在自定义组件js中,定义传入key和str的属性对象datas

 

properties: { /** * {key:'关键字',name:'待匹配字符串'} */ datas: { type: Object, observer: "_propertyDataChange" } },  

开始是单独传入key和name,表现正常,但是发现在某些特殊情况得不到想要的结果,这里就不列出来了,有兴趣的朋友可以自己尝试。  3、在自定义组件js中,处理传入的数据

 

methods: { _propertyDataChange: function(newVal) { console.log(newVal) let searchArray = this.getHilightStrArray(newVal.name, newVal.key) this.setData({ keyName: newVal.key, searchArray: searchArray }) }, getHilightStrArray: function(str, key) { return str.replace(new RegExp(`${key}`, 'g'), `%%${key}%%`).split('%%'); } }