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

JP1*_*971 4 javascript regex replace

我正在使用Jquery UI继续研究搜索术语建议工具.我现在正在使用粗体显示搜索项模式的结果.我通过修补Autocomplete的_renderItem方法实现了这个功能.我现在遇到的问题是被替换的字符具有与用户在输入中键入的字符相同的情况(例如,如果用户键入"A"并且返回的结果是"America",则替换的文本将是A meric A这是代码:

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

一如既往,提前感谢任何帮助.

Kob*_*obi 7

您可以使用:

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

替换字符串时,$&意味着"整个匹配",因此您不必重复搜索项(在某些情况下您不知道它).在其他口味中,您可以使用$0\0.
还有,记得转义特殊字符this.term.