使用JavaScript替换方法保留大小写/大写



我正在继续使用Jquery UI开发搜索词建议工具。我现在正在用粗体显示搜索词模式的结果。我通过修补Autocomplete的_renderItem方法实现了此功能。我现在遇到的问题是,被替换的字符与用户在输入中键入的字符大小写相同(例如,如果用户键入"A",返回的结果是"America",则被替换的文本将是AmericA。以下是代码:

    var exp = new RegExp(this.term, "gi") ;
    var rep = item.label.replace( exp, "<span style='font-weight:bold;color:Black;'>"
    + this.term + "</span>");

一如既往,提前感谢您的帮助。

您可以使用:

var rep = item.label.replace(exp,
                             "<span style='font-weight:bold;color:Black;'>$&</span>");

当替换字符串时,$&的意思是"完全匹配",因此您不必重复搜索项(在某些情况下您不知道)。在其他口味中,您可以使用$0
此外,请记住对this.term中的特殊字符进行转义。

您可以通过将表达式封装在括号中来将它们添加到组中

var exp = new RegExp("(" + this.term + ")", "gi") ;
var rep = item.label.replace( exp, "<span style='font-weight:bold'>$1</span>");

您可以使用$1对该组进行引用。

有关反向引用的更多详细信息,请参阅此处。

相关内容

最新更新