Bootstrap typeahead使大写不敏感?

时间:2013-07-17 13:55:22

标签: twitter-bootstrap case-insensitive bootstrap-typeahead typeahead

我正在使用此参数在不敏感的案例模式下进行bootstrap typeahead搜索。

matcher: function(item) {
    return true
}

我的口音就像输入“e”搜索é,è,ë,ê等...但不适用于大写和小写=>输入“g”不会寻找“G”......

还有其他参数吗?

2 个答案:

答案 0 :(得分:2)

好的,这就是我使用Paul的解决方案所做的:

             matcher: function(item) {
                if (item.toLowerCase().indexOf(this.query.trim().toLowerCase()) != -1) {
                    return true;
                }
                if (item.toUpperCase().indexOf(this.query.trim().toUpperCase()) != -1) {
                    return true;
                }
                var query = this.query.replace(/[\-\[\]{}()*+?.,\\\^$|#\s]/g, '\\$&');
                query = query.replace(/a/ig, '[a\341\301\340\300\342\302\344\304]');
                query = query.replace(/e/ig, '[e\351\311\350\310\352\312\353\313]');
                query = query.replace(/i/ig, '[i\355\315\354\314\356\316\357\317]');
                query = query.replace(/o/ig, '[o\363\323\362\322\364\324\366\326]');
                query = query.replace(/u/ig, '[u\372\332\371\331\373\333\374\334]');
                query = query.replace(/c/ig, '[c\347\307]');
                if(item.toLowerCase().match(query.toLowerCase())){
                    return true;
                }
            }

有了这个,你有一个真正的不敏感的情况。我推出了主要的特殊字符。您可能希望为匹配添加额外的字符。

答案 1 :(得分:0)

您好我遇到了同样的问题并以这种方式解决了我的问题:


    matcher: function (item) {
                if (item.toLowerCase().indexOf(this.query.trim().toLowerCase()) != -1) {
                    return true;
                }
            }