/**
* * 拼音检索
*
* 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}
版权属于:
cicaba
作品采用:
《
署名-非商业性使用-相同方式共享 4.0 国际 (CC BY-NC-SA 4.0)
》许可协议授权
评论 (0)