C# implements case-insensitive retrieval and highlighting sample code sharing

黄舟
Release: 2017-03-28 11:45:49
Original
1711 people have browsed it

This article mainly introduces the relevant information of C# retrieval case-insensitive and highlighted examples. Friends in need can refer to

C# retrieval insensitive Detailed explanation of case and highlight display examples

Today, I encountered a problem: How to highlight case-insensitive keywords in a web page

For example: text abcaBcabCaBCabcaBCa, keyword bc, in case of insensitivity, there are 6 matches in total.

 What is displayed on the web page is abcaBcabCaBCabcaBCa.

Many people think of the replace function. But in c# the replace function cannot solve the letter case problem.

For example, bc, Bc, bC, and BC have all been searched, but they cannot be replaced by a single text.

The above text is reproduced from the article of Daniel "Wancang Yimi" - -"Highlight case-insensitive keywords - ASP".

But his article was written in the ASP version, and today I am writing the C# version; let’s talk about the solution below.

Solution: Use IndexOf

##                                                   ''''''''''''''''''''''''‑‑‑‑‑‑‐‐‐‐‐‐‐‐‐‐‐‐‐ The index of the first occurrence in the object. Parameters

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

Code

/// <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=&#39;highlight&#39;>";
      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;
    }
Copy after login

The above is the detailed content of C# implements case-insensitive retrieval and highlighting sample code sharing. For more information, please follow other related articles on the PHP Chinese website!

Related labels:
source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template