asp.net中高亮关键字方法

一下是小弟将网上的东西拿过来稍微加工了下的成果,不过有个bug就是虽然能找出忽略大小写匹配的字符,但是却将大写改成小写了,不过我找出办法改掉这个bug

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Text.RegularExpressions;
using System.Web.UI.HtmlControls;

namespace Component_Select_System
{

        /// <summary>
        /// 关键字高亮,支持多关键字匹配,支持忽略大小写匹配
        /// </summary>
        public class HighLight
        {
                /// <summary>
                /// 单个关键字匹配,不区分大小写
                /// </summary>
                /// <param name="input">原始内容</param>
                /// <param name="keyword">关键字</param>
                /// <returns>string</returns>
                public static string HighLightKeyWord(string input, string keyword)
                {
                        //搜索关键词高亮函数By JN 2006.11.30 
                        System.Text.RegularExpressions.MatchCollection m = Regex.Matches(input, keyword, RegexOptions.IgnoreCase);
                        //忽略大小写搜索字符串中的关键字 
                        for (int j = 0; j < m.Count; j++)//循环在匹配的子串前后插东东 
                        {
                                //j×31为插入html标签使input字符串增加的长度: 
                                input = input.Insert((m[j].Index + keyword.Length + j * 31), "</font>");//关键字后插入html标签 
                                input = input.Insert((m[j].Index + j * 31), "<font color=#ff0000>");//关键字前插入html标签 
                        }
                        //搜索关键词高亮函数By JN 2006.11.30 
                        return input;
                }
 
                /// <summary>
                /// 替换关键字为红色,不区分大小写 
                /// </summary>
                /// <param name="input">原始内容</param>
                /// <param name="k">关键字,支持多关键字</param>
                /// <returns>String</returns>
                /// <author>visionsky</author>
                public static string Highlightkeywordss(string input, string keywords)
                {
                        string resultstr = input;
                        if (keywords.Trim().IndexOf(' ') > 0)
                        {
                                string[] myArray = keywords.Split(' ');
                                for (int i = 0; i < myArray.Length; i++)
                                {
                                        MatchCollection mc = Regex.Matches(resultstr, myArray[i].ToString(), RegexOptions.IgnoreCase);
                                        for (int j = 0; j < mc.Count; j++)
                                        {
                                                resultstr = resultstr.Replace(mc[j].ToString(), "<font color=#FF0000>" + mc[j].ToString() + "</font>");
                                        }

                                }
                                return resultstr;
                        }
                        else
                        {
                                MatchCollection mc = Regex.Matches(resultstr, keywords.ToString(), RegexOptions.IgnoreCase);
                                for (int j = 0; j < mc.Count; j++)
                                {
                                        resultstr = resultstr.Replace(mc[j].ToString(), "<font color=#FF0000>" + mc[j].ToString() + "</font>");
                                }

                                return resultstr;

                        }
                }


                /// <summary> 
                /// 替换关键字为红色 ,区分大小写
                /// </summary> 
                /// <param name="input">原始内容</param> 
                /// <param name="k">关键字,支持多关键字</param> 
                /// <returns>String</returns> 
                /// <author>haver Guo</author> 
                public static string Highlightkeywords(string input, string keywords) 
                { 
                        string resultstr = input; 
                        if (keywords.Trim().IndexOf(' ')>0) 
                        { 
                                string[] myArray = keywords.Split(' '); 
                                for (int i = 0; i < myArray.Length; i++) 
                                { 
                                        resultstr = input.Replace(myArray[i].ToString(), "<font color=#FF0000>" + myArray[i].ToString() + "</font>"); 
                                } 
                                return input; 
                        } 
                        else 
                        { 
                                return input.Replace(keywords, "<font color=#FF0000>" + keywords + "</font>"); 
                        } 
                } 
        }
}


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值