我有一个JSP,在文本区域中我正在读取整个句子的String数组并逐行打印。不,我想以粗体和红色字体突出显示行中的一些模式。例如如果正在读取的行包含模式“错误”(它可以是单个单词或单词的一部分,如“initializationerror”或“”),我将以粗体和红色突出显示。该行的其余部分将按原样打印。
以下是代码段:
<table border="2">
<%
if(session.getAttribute("Result") != null)
{
String Result = (String) session.getAttribute("Result");
if(Result.length() != 0)
{
String[] split_EOL = Result.split("\n");
%>
<tr align="center">
<td>
// Text area start here
<textarea rows="50" cols="100" readonly="yes">
<%
for(int i = 0; i < split_EOL.length; i++)
{
out.println(split_EOL[i]);
out.println(" ");
}
%>
</textarea>
</td>
</tr>
<%
}
}
%>
</table>
请帮忙
我尝试了以下内容:
<textarea rows="50" cols="100" readonly="yes">
<%
for(int i=0;i<split_EOL.length ; i++){
out.println(split_EOL[i].replaceAll("\\b\\w*"+Pattern+"\\w*\\b", "<b>$0</b>"));
out.println(" ");
}
%>
</textarea>
这里Pattern = ERROR .....但它显示如下
95323:[<b>ERROR</b>] Logger not set
即使我想在out.println中以粗体显示一些单词,但它没有渲染出粗体标记:
out.println("<b>"+Pattern+"</b>");%>
仅显示
<b>ERROR</b>
答案 0 :(得分:1)
您可以使用\b\w*error\w*\b
<span class="error-string">$0</span>
out.println(split_EOL[i].replaceAll("\\b\\w*error\\w*\\b", "<span class=\"error-string\">$0</span>"));
并在CSS中定义
error-string {
color: red;
font-weight: bold;
}
如果您需要不区分大小写的搜索,可以使用(?i)
为模式添加前缀,请参阅Pattern - Special constructs。
答案 1 :(得分:0)
<%if( //your condition )
{
out.println("<span style=\"font-weight:bold; color:red; \"> Bla Bla Bla </span>");
}
%>
答案 2 :(得分:0)
简单的方法是: string textString =&#34;这是我的文字我想突出显示文字&#34;;
的字符串
highlight = "<mark>text</mark>";
;
&lt;%= textString.replaceAll(&#34; text&#34;,highlight)%&gt;