我正在创建一个变量highlightedSearchKey,然后用名称字符串中的highlightedSearchKey替换searchKey字符串
如果搜索字符串是连续的,则此方法有效。但它并没有突出显示不连续的字符串。
例如:string1-好孩子
string2-这个男孩很好。 (好的和男孩都应该突出显示)
searchKey(1st string)=>这是搜索字符串。我想在第二篇中突出显示这个字符串的单词。
name(2nd string)=>这是显示的结果。
<c:set var="highlightedSearchKey" value="
<label style='background-color:yellow'>
${searchKey}
</label> "/>
<td>${fn:replace(name, searchKey, highlightedSearchKey)}</td>
答案 0 :(得分:0)
请复制并粘贴此示例。
<%@ taglib prefix = "c" uri = "http://java.sun.com/jsp/jstl/core" %>
<%@ taglib prefix = "fn" uri = "http://java.sun.com/jsp/jstl/functions" %>
<c:set var="string1" value="good boy"/>
<c:set var="string2" value="This boy is good"/>
<c:set var="array2" value='${fn:split(string2, " ")}'/>
<html>
<body>
<c:forEach items="${array2}" var="current">
<c:choose>
<c:when test="${fn:contains(string1, current)}">
<label style='background-color:yellow'>
${current}
</label>
</c:when>
<c:otherwise>
${current}
</c:otherwise>
</c:choose>
</c:forEach>
<br/>Another way<br/>
<c:set var="string1" value="goods boy"/>
<c:set var="array1" value='${fn:split(string1, " ")}'/>
<c:set var="string2" value="This boy is good goodly aboy goods"/>
<c:set var="array2" value='${fn:split(string2, " ")}'/>
<c:forEach items="${array2}" var="current">
<c:set var="found" value="false"/>
<c:forEach items="${array1}" var="curr">
<c:if test="${curr == current}">
<c:set var="found" value="true"/>
</c:if>
</c:forEach>
<c:choose>
<c:when test="${found}">
<label style='background-color:yellow'>
${current}
</label>
</c:when>
<c:otherwise>
${current}
</c:otherwise>
</c:choose>
</c:forEach>
</body>
</html>