ホームページ  >  記事  >  バックエンド開発  >  C# は、大文字と小文字を区別しない検索と強調表示されたサンプル コード共有を実装します。

C# は、大文字と小文字を区別しない検索と強調表示されたサンプル コード共有を実装します。

黄舟
黄舟オリジナル
2017-03-28 11:45:491673ブラウズ

この記事では主に C#大文字と小文字を区別せずに取得し、例の詳細な説明を強調表示します

C# を参照してください。問題: Web ページで大文字と小文字を区別しないキーワードを強調表示する方法

例: テキスト 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=&#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;
    }

以上がC# は、大文字と小文字を区別しない検索と強調表示されたサンプル コード共有を実装します。の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。