[英]jQuery UI Autocomplete ignore non alphanumeric letters
我想忽略自动完成输入中的所有非字母数字字母。 例如,如果用户输入KP COLLECTION
则可以搜索KP COLLECTION
。
这是我在http://jsbin.com/usupem上的代码
码:
var autocomplete_data = data here...
$( ".autocomplete" ).autocomplete({
source: function(req, response) {
var re = $.ui.autocomplete.escapeRegex(req.term);
var matcher = new RegExp( "^" + re, "i" );
response($.grep(autocomplete_data, function(item){return matcher.test(item.label); }) );
},
focus: function( event, ui ) {
$( ".autocomplete" ).val( ui.item.label );
return false;
},
select: function( event, ui ) {
$( ".autocomplete" ).val( ui.item.label );
return false;
}
}).data( "autocomplete" )._renderItem = function( ul, item ) {
return $( "<li></li>" ).data( "item.autocomplete", item ).append( "<a>" + item.label + "<br><small>" + item.desc + "</small></a>" ).appendTo( ul );
};
您应该从输入和要匹配的术语中去除非字母数字字符。 尝试在源函数的req.term和item.label值上调用类似的方法:
function stripNonAlphaNumeric(string){
var r = string.toLowerCase();
r = r.replace(new RegExp("[^A-z0-9 ]", 'g'), "");
return r;
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.