【问题标题】:Highlighting only the first char of each word仅突出显示每个单词的第一个字符
【发布时间】:2014-10-21 00:41:27
【问题描述】:

Jquery 自动完成 - 突出显示每个单词的第一个字符。

例如:

如果我在自动完成中使用单词“a”进行搜索,它应该按第一个字母的单词进行过滤->

南亚文化协会 乔治亚天使之家

结果应该是突出每个单词的第一个字符,过滤器也应该基于第一个字符..

异常输出:

South **A**sian 文化 **A**ssociation **乔治亚天使之家

谁能帮我解决这个问题?

【问题讨论】:

  • 请向我们展示您的代码

标签: jquery jquery-ui autocomplete jquery-autocomplete jquery-ui-autocomplete


【解决方案1】:

这是您正在尝试做的基本概念证明......

$("#entered").on("input", function () {
    var content = $('#content').html();
    var pattern = "( " + $("#entered").val() + ")";
    var regex = new RegExp( pattern, "gi");

    var output = content.replace( regex, '<span class="highlight">$1</span>');

    $('#output').html( output );
});

这里有更多代码...http://jsfiddle.net/bashe/t7oxzejh/1/

【讨论】:

    【解决方案2】:

    我希望这可行:

    $( "#project" ).autocomplete({
      minLength: 0,
      source: function(request, response) {
            var matcher = new RegExp("(?<!\w)" + $.ui.autocomplete.escapeRegex(request.term) + "\w+", "i");
            response($.grep(tags, function(item) {
                return matcher.test(item);
            }));
        },
      create: function () {
            $(this).data('ui-autocomplete')._renderItem = function (ul, item) {
                return $('<li>')
                    .append('<a>' + item.label.replace($("#project").val(), "*"+ $("#project").val() +"*") + '</a>')
                    .appendTo(ul);
            };
        }
    })
    

    });

    【讨论】:

    • 感谢您的帮助。但是自动完成应该检查句子的每个单词的第一个字符,并以此为基础突出显示结果。例如:
    • 感谢您的帮助。但是自动完成应该检查句子的每个单词的第一个字符,并以此为基础突出显示结果。例如:如果我用“s”这个词搜索,它应该过滤以下结果----宠物救援协会,南亚文化协会,教育机会赞助商。在这个“宠物救援协会”协会是 3 个字句子的第一个字符,但单词的第一个字符。任何人都可以为此提供帮助。
    • 我更新了正则表达式,它现在应该可以按你的意愿工作了。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-03-16
    相关资源
    最近更新 更多