>  기사  >  백엔드 개발  >  C#은 대소문자를 구분하지 않는 검색을 구현하고 샘플 코드 공유를 강조 표시합니다.

C#은 대소문자를 구분하지 않는 검색을 구현하고 샘플 코드 공유를 강조 표시합니다.

黄舟
黄舟원래의
2017-03-28 11:45:491716검색

이 글은 주로 C# 검색 대소문자 구분 및 강조 표시 관련 정보를 소개하며, 도움이 필요한 친구는

C# 검색 대소문자 구분 및 강조 표시에 대한 자세한 설명을 참조하세요. 예

오늘 문제가 발생했습니다. 웹 페이지에서 대소문자를 구분하지 않는 키워드를 강조 표시하는 방법

예: 텍스트 abcaBcabCaBCabcaBCa, 키워드 bc, 대소문자를 구분하지 않는 경우 다음이 있습니다. 총 6경기.

그러면 웹 페이지에 표시되는 것은 abcaBcabCaBCabcaBCa입니다.

많은 사람들이 교체 기능을 떠올립니다. 그러나 C#에서는 바꾸기 기능으로 대소문자 문제를 해결할 수 없습니다.

예를 들어 bc, Bc, bC, BC를 모두 검색했지만 단일 텍스트로 대체할 수 없습니다.

위 텍스트는 Daniel "Wancang Yimi"의 기사에서 재현되었습니다. " - -"대소문자를 구분하지 않는 키워드 강조 표시 - ASP".

하지만 그의 기사는 ASP 버전으로 작성되었으며, 오늘은 C# 버전으로 작성했습니다.

해결책: IndexOf 사용

IndexOf(String, Int32, StringComparison)

지정된 문자열이 현재 문자열에 있습니다. 개체에서 처음 나타나는 인덱스입니다.

매개변수

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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.