标签搜索

本地模糊搜素数据处理

cicaba
2017-11-23 / 0 评论 / 3 阅读 / 正在检测是否收录...
/**
  *  * 拼音检索
 * 
 * query @param {String} 用户输入 
  * dataSource @param {Array} 数据源
  * options @param {Array} 修改数据源
  * @returns 修改数据源
  */
var py = require('../util/pinyin.js');
const searchQuery =function(query,dataSource){
  if(query && query.constructor !== String) return;
  if(query==null){
      query = "";
  }
   let options = dataSource;
    if (query !== "") {
        let PinYin = py.convertPYs(query)[0];
        let simplePY = py.convertPYs(query)[1];
        let reg = new RegExp("[\\u4E00-\\u9FFF]+", "g");
        if (reg.test(query)) {//判断是汉字录入
          let Arr = options.filter((option) => {
            if (option.label.indexOf(query) > -1) {//返回匹配的汉字
              return option;
            }
          })
           return Arr.length > 0 ? [...Arr] : [];
        } else {//输入的是拼音
          let Arr = options.filter((option) => {
            if (PinYin.toUpperCase() === option.pinyin.toUpperCase() ||//判断全拼音相等 
              simplePY.toUpperCase() === option.py.toUpperCase() || //判断简拼相等
              option.py.toUpperCase().indexOf(simplePY.toUpperCase()) > -1 ||//全拼音包含
              option.pinyin.toUpperCase().indexOf(PinYin.toUpperCase()) > -1) {//简拼包含
              return option;
            } else {
              return ""
            }
          })
          return Arr.length > 0 ? [...Arr] : [];
        }
    } else {
        return dataSource;
      }
}
export {searchQuery}
0

评论 (0)

取消