您的位置:首页 > Web前端 > HTML

为新闻内容截字而写的过滤HTML的C#方法

2009-03-09 10:31 316 查看
好久没分享经历了,今天由于有个项目需要对新闻的内容截字显示,但由于新闻内容里有HTML的标签,如果不过滤掉这些HTML标签,截出来的字可能会产生HTML的烂码。需求如下:
1)将<table>内的所有内容全部过滤掉。

2)将其它的HTML标签过滤掉。
我的实现方法如下:
public string ClearHtmlTag(string html)
{
Regex htmlRegex1 = new Regex(@"<table(/s+[^>]+)?>(?![/s/S]*<table(/s+[^>]+)?>)[/s/S]*?</table>", RegexOptions.IgnoreCase);

Regex htmlRegex2 = new Regex(@"<(script|style)(/s+[^>]+)?>[/s/S]*?<//1>", RegexOptions.IgnoreCase);
Regex htmlRegex3 = new Regex(@"<[^>]*>", RegexOptions.IgnoreCase);

html = htmlRegex1.Replace(html, "");
if (htmlRegex1.IsMatch(html))
{
html = ClearHtmlTag(html);
}
else
{
html = htmlRegex2.Replace(html, "");
html = htmlRegex3.Replace(html, "");
}

return html;

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: