1. 程式人生 > >取出html程式碼中的一段文字 去除html標籤

取出html程式碼中的一段文字 去除html標籤

 //刪除html標籤
        public string SplitHtml(string Htmlstring)
        {
            
            Htmlstring = System.Text.RegularExpressions.Regex.Replace(Htmlstring, @"<[^>]*>", "");
            return Htmlstring;
        }

如何去掉從資料庫中讀出的帶有html標籤的字串,並是標籤起效,顯示在前臺頁面

<span style="font-size:18px;"> <tr class="sorts_gray"><td>內容www.66828.net</td><td><s:property value="topic.content" escape="false"/></td></tr></span>

例如資料庫中儲存的字串為“<p>百度百度百度</p><p>谷歌谷歌谷歌</p><p>網址www.66828.net<br/></p>”

加上  escape="false"  可以去掉HTML標籤,使html標籤起效,

顯示如下:

百度百度百度

谷歌谷歌谷歌

網址www.66828.net

//去除指定字串中的HTML標籤相關程式碼函式
private static string RemoveHtml(string strContent, string strTagName)
{
string pattern = "";
string strResult = "";
Regex exp;
MatchCollection matchList;
//去掉所有<a>www.66828.net</a>兩個標記的內容,保留<a>和</a>程式碼中間的程式碼
pattern = "<" + strTagName + "([^>])*>";
exp = new Regex(pattern, RegexOptions.IgnoreCase | RegexOptions.Multiline | RegexOptions.IgnorePatternWhitespace);
matchList = exp.Matches(strContent);
foreach (Match match in matchList)
{
if (match.Value.Length > 0)

{
strResult = match.Value;
strContent = strContent.Replace(strResult, "");

}
}
pattern = "</" + strTagName + "([^>])*>";
exp = new Regex(pattern, RegexOptions.IgnoreCase | RegexOptions.Multiline | RegexOptions.IgnorePatternWhitespace);
matchList = exp.Matches(strContent);
foreach (Match match in matchList)
{
if (match.Value.Length > 0)

{
strResult = match.Value;
strContent = strContent.Replace(strResult, "");

}

去掉所有<a></a>和兩個標記之間的全部內容 
pattern = "<" + strTagName + "([^>])*>.*?</" + strTagName + "([^>])*>";
exp = new Regex(pattern, RegexOptions.IgnoreCase | RegexOptions.Multiline | RegexOptions.IgnorePatternWhitespace);
matchList = exp.Matches(strContent);
foreach (Match match in matchList)
{
if (match.Value.Length > 0)

{
strResult = match.Value;
strContent = strContent.Replace(strResult, "");
}
}
}
return strContent;
}

最近使用百度編輯器Ueditor,儲存帶html標籤的資料。資料庫裡面儲存的資料是帶標籤的資料,但是頁面展示的時候卻不解析html中的標籤。經過自己反覆測試和百度,最終確定了問題所在。

我頁面展示時使用的是struts標籤  <s:property value="" /> ,Struts標籤中有一個屬性,Escape,如果不寫這個屬性的話,預設的為true,這樣從資料庫中讀取的帶有HTML標籤的資料就會原封不動的放在頁面中,瀏覽器是不會解析你資料中的HTML標籤的;只要將escape改為false即可;

<span><s:property value="" escape="false"/></span>