Jquery自动完成显示结果中的非英文字母

Jquery autocomplete shows non english letters in result

本文关键字:英文字母 结果 显示 Jquery      更新时间:2023-09-26

我有非常通用的自动完成javascript代码。一切正常,但是当你输入:

方式

你将得到结果:

方式

方式

在数据库中,我有特殊字母的单词,但在"方式"的情况下,我不想显示字母"ä"的单词-因为这不适合我的结果。

我怎么能忽略这样的结果?

谢谢你的建议。

代码:

$(document).ready(function () {
    if ($('#tags').length <= 0) {
        return;
    }
    var $project = $('#tags');
    $project.autocomplete({
        minLength: 2,
        source: function (request, response) {
            $.ajax({
                dataType: "json",
                type: 'post',
                cache: false,
                data: {term: request.term},
                url: '/ajax/',
                success: function (data) {
                        response($.map(data, function (item) {
                            return {
                                label: item.Cities__zip,
                                value: item.Cities__zip
                            }
                        }));
                }
            });
        },
    });
});

这看起来更像是在服务器端处理而不是在客户端处理。但是如果您想在ajax调用中这样做,您可以这样做,它利用正则表达式来匹配非英语字符,并过滤掉这些项:

$(document).ready(function () {
    if ($('#tags').length <= 0) {
        return;
    }
    var $project = $('#tags');
    $project.autocomplete({
        minLength: 2,
        source: function (request, response) {
            $.ajax({
                dataType: "json",
                type: 'post',
                cache: false,
                data: {term: request.term},
                url: '/ajax/',
                success: function (data) {
                    response($.map(data, function (item) {
                    return (/[^'u0000-'u007F]+/).test(item.Cities__zip) ? null : 
                    {
                        label: item.Cities__zip,
                        value: item.Cities__zip
                    }
                }));
                }
            });
        },
    });
});