0

我想用 searchedText 字符串突出显示字符串的一部分。

示例:我有一个产品参考 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>

有人能告诉我如何解决这个问题吗?基本上我需要替换字符串函数来保持原始引用的大小写敏感。

4

1 回答 1

2

正则表达式可以单独做到这一点:

${product.reference?replace(
     "(" + searchedText + ")",
     "<span class='light'>$1</span>",
     "ri"
)}

但是,thensearchText不能包含任何在正则表达式中具有特殊含义的字符(或必须转义的字符)。

于 2013-02-08T00:28:25.840 回答