C# 多关键字分别高亮显示的问题
简单点说,就是想把以下代码
public static string HighlightKeyword(string str, string keyword)
中的
string keyword 换成 String[] keyword 后能够实现
罗嗦点说,
现在实现的是单个关键字高亮,比如 流行 歌曲 ,现在是两个一起高亮显示,连在一起
想实现让每个关键字分开单独显示,用了String[] keyword 替换了原来的 string keyword
拆分后搜索已经正常,但想高亮显示字符串数组里的每个关键字就不知道如何实现了
如何把 下边的字符串keyword 换成 String[] keyword,判断String[] keyword的长度并每组里的关键字单独高亮显示?
越简单实现越好,太复杂估计我很难看懂,谢谢各位帮忙!
aspx
<asp:Repeater ID="searchList" runat="server">
<ItemTemplate>
<%# HighlightKeyword(DataBinder.Eval(Container.DataItem, "title").ToString(), keyword)%>
aspx.cs
/// <summary>
/// 把关键字替换为高亮显示
/// </summary>
/// <returns></returns>
public static string HighlightKeyword(string str, string keyword)
{
int index;
int startIndex = 0;
string highlightBegin = "<em>";
string highlightEnd = "</em>";
int length = highlightBegin.Length + keyword.Length;
int 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;
}