搜索结果高亮显示(不改变html标签)
一、问题的产生
搜索结果高亮显示,在新闻标题,来源之类的地方好做,只需要用str.Replace(keyword,"<font style=\"color:red;\"" + keyword +"</font>");这样的方法就可实现。
问题在于,在新闻内容里做搜索。其中html标签里可能含有关键字,用上面这种方法,将会替换掉html标签的部分内容,导致新闻内容不能正常显示。
例如:新闻内容里的图片<img alt="" src="Upload\1.jpg" />,搜索时使用的关键字为oa,则会将新闻内容中这张图片替换为<img alt="" src="Upl<font style="color:red;">oa</font>d\1.jpg" />,这张图片就显示不出来了。
二、实现原理
首先,将新闻内容里的所有html标签读出来,保存起来;
其次,将所有html标签替换为一般不可能出现的字符,如[[1]],[[2]]......[[N]]]等;(搜索的关键字一般不会是[[N]]吧,新闻内容里也一般不会出现这样的字符)
再次,将搜索结果替换为高亮显示状态;
最后,将html标签还原。
三、实现代码
以下代码是网上搜集的,来源不详,在此对作者表示感谢。
public static string Reg(string input, string replace)
{
//设置高亮样式
string replaceformat = "<span style=\"font-size:14px; font-weight:bold; color:#f00; background-color:#ff0\">{0}</span>";
System.Text.RegularExpressions.Regex reg = new System.Text.RegularExpressions.Regex(String.Format("{0}", replace), System.Text.RegularExpressions.RegexOptions.Multiline);
return reg.Replace(input, string.Format(replaceformat, replace));
}
/// <summary>
/// 设置各个html部分为自定义标号
/// </summary>
/// <pa
相关文档:
import java.io.FileOutputStream;
import java.io.OutputStream;
import java.io.StringReader;
import java.util.List;
import com.lowagie.text.Document;
import com.lowagie.text.PageSize;
import com.lowagie.text.Paragraph;
import com.lowagie.text.html.simpleparser.HTMLWorker;
import com.lowagie.te ......
package test;
import java.io.UnsupportedEncodingException;
import java.net.URLDecoder;
import java.net.URLEncoder;
/**
* @category 功能1:汉字与16进制的转换<br/>功能2:汉字与Html转义符的转换
* @author 作者:李易烜<br/>邮箱:chinaliyixuan@hotmail.com
* @date 创建时间:Fe ......
1 <html:html>标记
简单的在页面的开始和结尾处产生一个html标记。
2<html:base>
用于在网页的head部分生成一个base标记,作用不仅仅是生成本网页的URL ,更重要的是为该页面的所有其他的链接提供相对的位置。
3 <html:link>
用于生成html中的<a> ......
像在座的各位一样,由于自身的兴趣,我对AJAX编程方面的研究是持续不断的。随着该领域的深入,我越来越发觉所谓的浏览器DOM,即HTML DOM,是一个非常值得关注的点。这观点在与同行们交换意见的时候也曾谈到过,就是,我们仍然缺乏具有深度的、规范的DOM Level 1辅助读物,网络上搜索也比较少见。而我们真实的想法在于,我们 ......
語法
說明
<! - - ... - ->
用於HTML文件中的註解
<A HREF TARGET=>
指定超鏈結的分割視窗目標
<A HREF=#錨的名稱>
設定鏈結錨點的名稱
<A HREF=>
設定超鏈 ......