Jsp 突出显示第二个字符串中第一个字符串的所有单词
我正在创建一个变量highlightedSearchKey,然后用名称字符串中的highlightedSearchKey替换searchKey字符串 如果搜索字符串是连续的,则此操作有效。但它并没有突出显示中止字符串 例:string1-好孩子Jsp 突出显示第二个字符串中第一个字符串的所有单词,jsp,jsp-tags,Jsp,Jsp Tags,我正在创建一个变量highlightedSearchKey,然后用名称字符串中的highlightedSearchKey替换searchKey字符串 如果搜索字符串是连续的,则此操作有效。但它并没有突出显示中止字符串 例:string1-好孩子 这个男孩很好。(应突出显示“好”和“男孩”) searchKey(第一个字符串)=>这是搜索字符串。我想突出显示第二个字符串中的单词 名称(第二个字符串)=>这是显示的结果 <c:set var="highlightedSearchKey"
这个男孩很好。(应突出显示“好”和“男孩”) searchKey(第一个字符串)=>这是搜索字符串。我想突出显示第二个字符串中的单词 名称(第二个字符串)=>这是显示的结果
<c:set var="highlightedSearchKey" value="
<label style='background-color:yellow'>
${searchKey}
</label> "/>
<td>${fn:replace(name, searchKey, highlightedSearchKey)}</td>
${fn:replace(名称、搜索键、highlightedSearchKey)}
请复制并粘贴此示例
<%@ 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>
${current}
${current}
另一种方式
${current}
${current}
fn:replace仅在searchKey的全部内容匹配时进行替换。“This boy is good”不包含“good boy”,因此没有匹配项。@aro_tech正是如此,这就是为什么我需要一个替代项来执行此操作。您可能需要编写一个自定义JSP标记,将搜索关键字拆分为多个搜索词,并替换每个搜索词的文本。