我想用searchText字符串突出显示字符串的一部分。
例:
我有一个产品参考abcDeFg(区分大小写),有人搜索参考“def”的产品。结果应为abc<span class="hl">DeF</span>g
问题:结果应该是突出显示的产品参考(区分大小写)
例外结果:abc<span class='light'>DeF</span>g
我的结果:abc<span class='light'>def</span>g
(def很小)
目前我正在使用
<#assign prodRef = product.getReference()>
<#if (prodRef?lower_case?index_of(searchedText?lower_case) > -1)>
<#assign textToReplace = "<span class='light'>" + searchedText + "</span>">
${product.reference?replace(searchedText, textToReplace, "i")}
</#if>
有人能告诉我如何解决这个问题吗? 基本上我需要替换字符串函数,以保持原始引用的区分大小写。
答案 0 :(得分:2)
正则表达式可以单独执行此操作:
${product.reference?replace(
"(" + searchedText + ")",
"<span class='light'>$1</span>",
"ri"
)}
但是,searchText
不得包含任何在正则表达式中具有特殊含义的字符(或必须转义的字符)。