从带有html标记的字符串返回100个字符,但忽略标记字符

时间:2018-02-04 11:38:43

标签: c# html asp.net regex

现在我有一个包含

等html标签的字符串
public class TimeDtl
{
    public String CustName { get; set; }
    public DateTime? tranDate { get; set; }
    public string startTime { get; set; }
    public string endTime { get; set; }

    public decimal? startTimeDecimal
    {
        get
        {
            // logic of converting to decimal
        }
    }
}

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

  1. 正则表达式删除标签。 (留给我额外的空格或空格)
  2. 子串(0,100)。 (当然,它也将html标签视为字符)
  3. 注意:我无法使用javascript。

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

    <div> <p> and <br>
    

1 个答案:

答案 0 :(得分: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>

<强>爪哇: -

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;
}

祝你好运!!!