本文摘自PHP中文网,作者黄舟,侵删。
这篇文章主要介绍了C# 检索不区分大小写并高亮显示实例详解的相关资料,需要的朋友可以参考下C# 检索不区分大小写并高亮显示实例详解
今日,碰到一个问题:如何在网页中高亮显示不区分大小写的关键字
例如:文本abcaBcabCaBCabcaBCa,关键字bc,在不区分大小写的情况,一共有6个匹配项。
则在网页中显示的是abcaBcabCaBCabcaBCa。
很多人,想到是replace函数。但是在c# 中replace函数无法解决字母大小写问题。
例如示例上看,bc,Bc,bC,BC都被搜索到了,却不能统一替换为一个文本
以上文字转自大牛“万仓一黍“的文章--”高亮显示不区分大小写的关键字――ASP“。
但是他的文章写得是ASP版本,今天我写得是C#版本;下面说说解决办法。
解决办法:运用 IndexOf
IndexOf(String, Int32, StringComparison)
指定的字符串在当前 String 对象中的第一个匹配项的索引。
参数
1 2 3 4 5 6 7 8 9 10 | value
类型: System. String
要搜寻的字符串。
startIndex
类型: System. Int32
搜索起始位置。
comparisonType
类型: System. StringComparison
指定搜索规则的枚举值之一。
(OrdinalIgnoreCase:使用序号排序规则并忽略被比较字符串的大小写,对字符串进行比较。)
|
代码
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 | /// <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#中常用的运算符有哪些
C#设计模式-观察者模式的另类的示例代码总结
实现C#中图片.byte[]和base64string的转换方法的详解
使用C#操作windowad之添加对象到用户组
如何看待C#中的out和ref?探讨它们之间的区别
原来斐波拉契数列还有这种写法,你知道吗?
用C#描述数据结构1:统计代码执行时间对象的代码详解
C#系列文章事件
C#如何将datatable中的列名复制到另一个datatable
详解C#接口在派生类和外部类中的调用方法示例
更多相关阅读请进入《C#》频道 >>
清华大学出版社
作者:[美]克里斯琴·内格尔(Christian Nagel)著。出版时间:2019年3月。
转载请注明出处:木庄网络博客 » C#实现检索不区分大小写并高亮显示的示例代码分享