网友真实露脸自拍10p,成人国产精品秘?久久久按摩,国产精品久久久久久无码不卡,成人免费区一区二区三区

小程序模板網

微信小程序實時搜索并高亮關鍵字效果

發布時間:2018-08-18 09:04 所屬欄目:小程序開發教程

很多項目中會有搜索,有時是要點擊搜索按鈕時搜索,有時是點擊鍵盤完成搜索,還有時需要實時搜索,而高亮關鍵字也是一個常見的需求。

今天寫一個實時搜索并高亮關鍵字的微信小程序demo,已上傳GitHub,需要自取

微信小程序實時搜索高亮關鍵字demo

這是一個我項目中的截圖,但是數據結構又略微有點復雜,不好演示,所以單獨又寫了一個demo,數據來自干活集中營 

實時搜索高亮關鍵字 
關鍵函數:將字符串使用關鍵字分割:

 

				
  1. //返回一個使用key切割str后的數組,key仍在數組中
  2. getHilightStrArray: function(str, key) {
  3. return str.replace(new RegExp(`${key}`, 'g'), `%%${key}%%`).split('%%');
  4. }

一、新建一個自定義組件,作為顯示有高亮字符串的組件

1、在自定義組件wxml中循環數組并判斷是否是關鍵字然后設置不同的class,代碼如下:

 

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

2、在自定義組件js中,定義傳入key和str的屬性對象datas

 

				
  1. properties: {
    /**
    * {key:'關鍵字',name:'待匹配字符串'}
    */
    datas: {
    type: Object,
    observer: "_propertyDataChange"
    }
    },

開始是單獨傳入key和name,表現正常,但是發現在某些特殊情況得不到想要的結果,這里就不列出來了,有興趣的朋友可以自己嘗試。  3、在自定義組件js中,處理傳入的數據

 

				
  1. 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('%%');
    }
    }
    


易優小程序(企業版)+靈活api+前后代碼開源 碼云倉庫:starfork
本文地址:http://www.xiuhaier.com/wxmini/doc/course/24732.html 復制鏈接 如需定制請聯系易優客服咨詢:800182392 點擊咨詢
QQ在線咨詢
AI智能客服 ×