gpt4 book ai didi

javascript - 在 javascript/jquery 中的自动完成中突出显示匹配的字母

转载 作者:行者123 更新时间:2023-12-03 12:32:35 25 4
gpt4 key购买 nike

我有一组机场名称及其代码,要在自动填充中显示。

例如阿姆斯特丹 (AMS)

我想匹配在搜索框中输入的值,我想显示匹配的机场名称以及机场代码粗体,如下所示。

如果我在搜索框中输入ams,我想在自动完成中突出显示“Ams”terdem ('AMS')。

我编写了如下代码:

function () {
var oldFn = $.ui.autocomplete.prototype._renderItem;
$.ui.autocomplete.prototype._renderItem = function( ul, item) {
var re = new RegExp("^" + this.term, "i") ;
var t = item.label.replace(re,"<span style='font-weight:bold;'>" + this.term + "</span>");
return $( "<li></li>" )
.data( "item.autocomplete", item )
.append( "<a>" + t + "</a>" )
.appendTo( ul );
};
};

结果为“Ams”terdem (AMS),而不是“Ams”terdem (AMS)。

注意:Amsterdem (AMS) 是一个单独的术语

请指教。

最佳答案

你必须改变

var re = new RegExp("^" + this.term, "i") ;

使用此代码

var re = new RegExp(this.term, "ig") ;

这将替换字符串中的所有实例

“^”表示字符串的开头,正则表达式中的“g”适用于所有实例

here是工作示例

用这个替换你的代码

function () {
var oldFn = $.ui.autocomplete.prototype._renderItem;
$.ui.autocomplete.prototype._renderItem = function( ul, item) {
var re = new RegExp(this.term, "ig") ;
var t = item.label.replace(re,"<span style='font-weight:bold;'>" + this.term + "</span>");
return $( "<li></li>" )
.data( "item.autocomplete", item )
.append( "<a>" + t + "</a>" )
.appendTo( ul );
};
};

关于javascript - 在 javascript/jquery 中的自动完成中突出显示匹配的字母,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23865407/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com