2016-12-02 7 views
-1

ウェブブラウザコントロールを使用しています。 Textboxクラスのテキスト変更のように、ウェブブラウザに文字数を数えたいと思います。私はちょうどWebBrowser表示されないテキストの文字の数をカウントしたいhtml、イメージ、などはありませんどのようにどのようにテキストを変更するときにトリガのテキストボックスの動作をシミュレートしますか?ありがとうウェブブラウザコントロールC#の文字数はどのように数えますか?

私はC#でWinformsを開発しています。 ASP.NETはありません。 、

using System.Text.RegularExpressions; 

名前空間CK.TicketSystem.Shared { のpublic staticクラスHtmlUtils { パブリック静的ブールIsHtmlFragment(文字列値) { 戻りRegex.IsMatch(値:

+1

WebBrowserコントロールは、テキストよりも多くを表示することができます願っています。たとえば、画像が含まれます。表示されているテキストの文字数を数えたいだけですか?または、ソースHTMLの文字数を数えたいですか?また、テキストボックスに表示されるテキストが変更されたときにトリガーされるTextBoxのTextChangedイベントを暗示します.WebBrowserの同等のイベントは、Navigatedのようなものになります。あなたの質問にはもっと多くの詳細が必要です。 –

+0

あなたはhtml文書の文字を数えることについて話していますか? –

+0

あなたのご質問にお答えできるよう、あなたの意思を明確にしてください。 –

答えて

1

は、以下のクラスを追加します。 @ ""); }

/// <summary> 
    /// Remove tags from a html string 
    /// </summary> 
    /// <param name="value"></param> 
    /// <returns></returns> 
    public static string RemoveTags(string value) 
    { 
     if (value != null) 
     { 
      value = CleanHtmlComments(value); 
      value = CleanHtmlBehaviour(value); 
      value = Regex.Replace(value, @"</[^>]+?>", " "); 
      value = Regex.Replace(value, @"<[^>]+?>", ""); 
      value = value.Trim(); 
     } 
     return value; 
    } 

    /// <summary> 
    /// Clean script and styles html tags and content 
    /// </summary> 
    /// <returns></returns> 
    public static string CleanHtmlBehaviour(string value) 
    { 
     value = Regex.Replace(value, "(<style.+?</style>)|(<script.+?</script>)", "", RegexOptions.IgnoreCase | RegexOptions.Singleline); 

     return value; 
    } 

    /// <summary> 
    /// Replace the html commens (also html ifs of msword). 
    /// </summary> 
    public static string CleanHtmlComments(string value) 
    { 
     //Remove disallowed html tags. 
     value = Regex.Replace(value, "<!--.+?-->", "", RegexOptions.IgnoreCase | RegexOptions.Singleline); 

     return value; 
    } 

    /// <summary> 
    /// Adds rel=nofollow to html anchors 
    /// </summary> 
    public static string HtmlLinkAddNoFollow(string value) 
    { 
     return Regex.Replace(value, "<a[^>]+href=\"?'?(?!#[\\w-]+)([^'\">]+)\"?'?[^>]*>(.*?)</a>", "<a href=\"$1\" rel=\"nofollow\" target=\"_blank\">$2</a>", RegexOptions.IgnoreCase | RegexOptions.Compiled); 
    } 
} 

}

私はいくつかの本当に良い開発者のブログでこのクラスを見つけましたが、私はそれを見つけたところ、残念ながら、私は覚えていないことを言わなければなりません。

は、次に、あなたが実行します。

var str = HtmlUtils.RemoveTags(yourHtmlString); 
var numberOfCharacters = str.Length; 

は、それが

+0

完璧です。ありがとう! –

関連する問題