【问题标题】:Return 100 characters from a string with html tags but ignoring the tag characters从带有 html 标签但忽略标签字符的字符串中返回 100 个字符
【发布时间】:2018-02-04 11:38:43
【问题描述】:

现在我有一个带有 html 标签的字符串,例如

<div> <p> and <br>

当然也有可读文本.. 现在我要返回的是可读文本只有 100 个字符.. 我尝试了以下选项,但没有帮助。

  1. 正则表达式删除标签。 (给我留下额外的空格或空空格)
  2. 子字符串 (0, 100)。 (当然,它也将 html 标签读取为字符)

注意:我不能使用 javascript。

下面是我的示例字符串..

<div class="ExternalShit23429812"><p>This is a paragraoph.. </p><br><p>What</p><p>Yeah right</p><p>Paragraph</p><p>and Paragraph</p><p>More paragraph</p><p>More paragraph</p><p>More paragraph</p><p>More paragraph</p><p>More paragraph yes yes yes</p><p>More paragraph</p><p>More paragraph</p><p>More paragraph</p><p>More paragraph</p><p>More paragraph</p><p>More paragraph</p><p>More paragraph</p><p>More paragraph</p><p>More paragraph</p></div>

【问题讨论】:

标签: c# html asp.net regex


【解决方案1】:

我从未使用过 C#,但以下是您在 javascript 和 Java 中遇到的问题的解决方案。您可以通过查看这些示例来获得一个想法:

JavaScript:-

<script type="text/javascript">
    function getStringWithOutTags(id, length){
        var str = document.getElementById(id).innerHTML;
        while(true){
            var start = str.indexOf("<");
            if(start < 0){
                break;
            }   
            var end = str.indexOf(">", start);
            var temp = str.substring(start, end+1);
            str = str.replace(temp, "");
        }
        var output = (str.length > 100) ? str.substring(0,100) : str;
        document.getElementById(id).innerHTML = output; 
    }
    </script>

Java:-

public static String getStringWithOutTags(String str, int length){
    while(true){
        int start = str.indexOf("<");
        if(start < 0){
            break;
        }   
        int end = str.indexOf(">", start);
        String temp = str.substring(start, end+1);
        str = str.replace(temp, "");
    }
    return (str.length() > length) ? str.substring(0, length) : str;
}

祝你好运!!!

【讨论】:

  • 我试过你的函数,它和我用正则表达式做的一样。我收到了这个This is a paragraoph.. What Yeah right Paragraphand Paragraph More paragraphMore paragraph More para,但是,我仍然需要

    标签来显示带有格式的文本。

  • 你需要

    开头和

    结尾吗?或字符串中的每个

  • 是的,每个

    .. 还有
    .. 但正因为如此,我无法计算字符串中字符的确切长度。因为标签也被.length 计算在内。即&lt;p&gt;123&lt;/p&gt;&lt;br&gt;&lt;p&gt;456&lt;/p&gt;&lt;p&gt;789&lt;/p&gt; = 34 chars .. 当我只想要6个字符时意味着&lt;p&gt;123&lt;/p&gt;&lt;br&gt;&lt;p&gt;456&lt;/p&gt;而不是&lt;p&gt;123
猜你喜欢
  • 2015-12-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-11-18
  • 1970-01-01
相关资源
最近更新 更多