C# 检索不区分大小写并高亮显示实例详解

C# 检索不区分大小写并高亮显示实例详解,第1张

概述C#检索不区分大小写并高亮显示实例详解  今日,碰到一个问题:如何在网页中高亮显示不区分大小写的关键字

C# 检索不区分大小写并高亮显示实例详解

  今日,碰到一个问题:如何在网页中高亮显示不区分大小写的关键字

  例如:文本abcaBcabCaBCabcaBCa,关键字bc,在不区分大小写的情况,一共有6个匹配项。

  则在网页中显示的是abcaBcabCaBCabcaBCa。

  很多人,想到是replace函数。但是在c# 中replace函数无法解决字母大小写问题。

  例如示例上看,bc,Bc,bC,BC都被搜索到了,却不能统一替换为一个文本

       以上文字转自大牛“万仓一黍“的文章--”高亮显示不区分大小写的关键字――ASP“。

       但是他的文章写得是ASP版本,今天我写得是C#版本;下面说说解决办法。

   解决办法:运用 IndexOf

            IndexOf(String,Int32,StringComparison)

            指定的字符串在当前 String 对象中的第一个匹配项的索引。

参数

value类型: System. String 要搜寻的字符串。startIndex类型: System. Int32 搜索起始位置。comparisonType类型: System. StringComparison 指定搜索规则的枚举值之一。(OrdinalignoreCase:使用序号排序规则并忽略被比较字符串的大小写,对字符串进行比较。)

代码

/// <summary>    /// 高亮查找关键字。    /// </summary>    /// <param name="str">文本。</param>    /// <param name="keyword">关键字</param>    /// <returns>含高亮标识的文本。</returns>    /// <remarks>    ///  1、字母不区分大小写。     ///  2、CSSClass 名称为 highlight。    /// </remarks>    private string HighlightKeyword(string str,string keyword)    {      int index;      var startIndex = 0;      const string highlightBegin = "<span class='highlight'>";      const string highlightEnd = "</span>";      var length = highlightBegin.Length + keyword.Length;      var lengthHighlight = length + highlightEnd.Length;      while ((index = str.IndexOf(keyword,startIndex,StringComparison.OrdinalignoreCase)) > -1)      {        str = str.Insert(index,highlightBegin).Insert(index + length,highlightEnd);        startIndex = index + lengthHighlight;      }      return str;    }

感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!

总结

以上是内存溢出为你收集整理的C# 检索不区分大小写并高亮显示实例详解全部内容,希望文章能够帮你解决C# 检索不区分大小写并高亮显示实例详解所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1256527.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-07
下一篇 2022-06-07

发表评论

登录后才能评论

评论列表(0条)

保存