javascript select2模糊搜索

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了javascript select2模糊搜索相关的知识,希望对你有一定的参考价值。

// https://github.com/bevacqua/fuzzysearch
function fuzzysearch(needle, haystack) {
	var hlen = haystack.length;
	var nlen = needle.length;
	if (nlen > hlen) {
		return false;
	}
	if (nlen === hlen) {
		return needle === haystack;
	}
	outer: for (var i = 0, j = 0; i < nlen; i++) {
		var nch = needle.charCodeAt(i);
		while (j < hlen) {
			if (haystack.charCodeAt(j++) === nch) {
				continue outer;
			}
		}
		return false;
	}
	return true;
}
$('.select2').select2({
	language: 'fa',
	dir: 'rtl',
	matcher: function(params, data) {

		// If there are no search terms, return all of the data
		if ($.trim(params.term) === '') {
			return data;
		}

		// Do not display the item if there is no 'text' property
		if (typeof data.text === 'undefined') {
			return null;
		}

		// `params.term` should be the term that is used for searching
		// `data.text` is the text that is displayed for the data object
		if (fuzzysearch(params.term.toUpperCase(), data.text.toUpperCase())) {
			var modifiedData = $.extend({}, data, true);

			// You can return modified objects from here
			// This includes matching the `children` how you want in nested data sets
			return modifiedData;
		}

		// Return `null` if the term should not be displayed
		return null;
	}
});

以上是关于javascript select2模糊搜索的主要内容,如果未能解决你的问题,请参考以下文章

如何实现模糊搜索之类的 sublime text?

在 select2 上触发模糊

select2的使用(ajax获取数据)

select2 下拉搜索 可编辑可搜索 / 只可搜索

select2 智能补全模糊查询select2的下拉选择框使用

select2 ajax加载数据,支持模糊查询(非本地)