HTML\Script 去除关键字

以下是引用片段:
  -----
/**/
/// <summary>
/// 去除HTML标记
/// </summary>
/// <param name="NoHTML">包括HTML的源码 </param>
/// <returns>已经去除后的文字</returns>
public static string NoHTML(string Htmlstring)
{
//删除脚本
Htmlstring = Regex.Replace(Htmlstring, @"<script[^>]*?>.*?</script>", "",
RegexOptions.IgnoreCase);
//删除HTML
Htmlstring = Regex.Replace(Htmlstring, @"<(.[^>]*)>", "",
RegexOptions.IgnoreCase);
Htmlstring = Regex.Replace(Htmlstring, @"([\r\n])[\s]+", "",
RegexOptions.IgnoreCase);
Htmlstring = Regex.Replace(Htmlstring, @"-->", "", RegexOptions.IgnoreCase);
Htmlstring = Regex.Replace(Htmlstring, @"<!--.*", "", RegexOptions.IgnoreCase);
Htmlstring = Regex.Replace(Htmlstring, @"&(quot|#34);", "\"",
RegexOptions.IgnoreCase);
Htmlstring = Regex.Replace(Htmlstring, @"&(amp|#38);", "&",
RegexOptions.IgnoreCase);
Htmlstring = Regex.Replace(Htmlstring, @"&(lt|#60);", "<",
RegexOptions.IgnoreCase);
Htmlstring = Regex.Replace(Htmlstring, @"&(gt|#62);", ">",
RegexOptions.IgnoreCase);
Htmlstring = Regex.Replace(Htmlstring, @"&(nbsp|#160);", " ",
RegexOptions.IgnoreCase);
Htmlstring = Regex.Replace(Htmlstring, @"&(iexcl|#161);", "\xa1",
RegexOptions.IgnoreCase);
Htmlstring = Regex.Replace(Htmlstring, @"&(cent|#162);", "\xa2",
RegexOptions.IgnoreCase);
Htmlstring = Regex.Replace(Htmlstring, @"&(pound|#163);", "\xa3",
RegexOptions.IgnoreCase);
Htmlstring = Regex.Replace(Htmlstring, @"&(copy|#169);", "\xa9",
RegexOptions.IgnoreCase);
Htmlstring = Regex.Replace(Htmlstring, @"&#(\d+);", "",
RegexOptions.IgnoreCase);

Htmlstring.Replace("<", "");
Htmlstring.Replace(">", "");
Htmlstring.Replace("\r\n", "");
Htmlstring = HttpContext.Current.Server.HtmlEncode(Htmlstring).Trim();

return Htmlstring;
}

/**/ ///提取HTML代码中文字的C#函数
/// <summary>
/// 去除HTML标记
/// </summary>
/// <param name="strHtml">包括HTML的源码 </param>
/// <returns>已经去除后的文字</returns>
using System;
using System.Text.RegularExpressions;
public class StripHTMLTest
{
public static void Main()
{
string s = StripHTML(
"<HTML><HEAD><TITLE>中国石龙信息平台</TITLE></HEAD><BODY>faddfs龙信息平台</BODY></HTML>");
Console.WriteLine(s);
}

public static string StripHTML(string strHtml)
{
string[]aryReg =
{
@"<script[^>]*?>.*?</script>",

@"<(\/\s*)?!?((\w+:)?\w+)(\w+(\s*=?\s*(([""‘])(\\["
"‘tbnr]|[^\7])*?\7|\w+)|.{0})|\s)*?(\/\s*)?>", @"([\r\n])[\s]+", @
"&(quot|#34);", @"&(amp|#38);", @"&(lt|#60);", @"&(gt|#62);", @
"&(nbsp|#160);", @"&(iexcl|#161);", @"&(cent|#162);", @"&(pound|#163);",
@"&(copy|#169);", @"&#(\d+);", @"-->", @"<!--.*\n"
};

string[]aryRep =
{
"", "", "", "\"", "&", "<", ">", " ", "\xa1", //chr(161),
"\xa2", //chr(162),
"\xa3", //chr(163),
"\xa9", //chr(169),
"", "\r\n", ""
};

string newReg = aryReg[0];
string strOutput = strHtml;
for (int i = 0; i < aryReg.Length; i++)
{
Regex regex = new Regex(aryReg[i], RegexOptions.IgnoreCase);
strOutput = regex.Replace(strOutput, aryRep[i]);
}
strOutput.Replace("<", "");
strOutput.Replace(">", "");
strOutput.Replace("\r\n", "");
return strOutput;
}
}

写一个静态方法移除HTML标签
#region
///移除HTML标签
/**/ /// <summary>
/// 移除HTML标签
/// </summary>
/// <param name="HTMLStr">HTMLStr</param>
public static string ParseTags(string HTMLStr)
{
return System.Text.RegularExpressions.Regex.Replace(HTMLStr, "<[^>]*>", "");
}

#endregion

/// 取出文本中的图片地址
#region
/// 取出文本中的图片地址
/**/ /// <summary>
/// 取出文本中的图片地址
/// </summary>
/// <param name="HTMLStr">HTMLStr</param>
public static string GetImgUrl(string HTMLStr)
{
string str = string.Empty;
string sPattern = @"^<img\s+[^>]*>";
Regex r = new Regex(@"<img\s+[^>]*\s*src\s*=\s*([‘]?)(?<url>\S+)‘?[^>]*>",
RegexOptions.Compiled);
Match m = r.Match(HTMLStr.ToLower());
if (m.Success)
str = m.Result("${url}");
return str;
}

#endregion

本文来源:IT传媒网
原文链接:http://www.cniter.com/tech/asp.net/csharp/remove_html_tag_10806_1.html
时间: 2024-10-19 19:37:20

HTML\Script 去除关键字的相关文章

[转]正则表达式,去除所有HTML标签

protected string str = "<table><tr><td>sdasasdsdd</td></tr></table><br><p>sds</p><img id='img1' src='http://www.baidu.com/img/baidu_logo.gif' width='100' height='50' alt=''>aaassss<br>

合并_00基础班js(9days)笔记

js基本语法介绍 js语言是写在<script>这个标签之间. js语言是以"语句行"为单位的,每行(每条)语句需要用分号结束: js语言的注释为: 两个斜杠: //这是单行注释内容, /* 这是多行注释内容 */ js语言区分大小写. ? 变量: 变量就是一个内存区块的名字.该区块可以存储我们的"东西"(内容)--数据. 变量几乎是"无穷无尽"--从手写的角度来说,可以定义任意多个变量. 一个变量里面只能存一个数据 ? 变量定义的标

CCDictionary

简介 CCDirtionary使用UTHash实现的.老版本的CCMutableDictionary使用STL实现,但是已经被移除了.而且CCDictionary也是最近才被添加进来的.由于CCDictionary没有使用C++的模板特性了,因此可以轻松的绑定到script. 关键字类型 CCDictionary支持两种类型的关键字,一个是std::string,一个是int.一个CCDictionary实例对象只支持唯一的关键字.所以在你调用"setObject"方法的时候,你需要确

正则表达式清除Html

正则表达式,去除所有HTML标签 protected void Page_Load(object sender, EventArgs e) { //string regexstr = @"<[^>]*>"; //去除所有的标签 //@"<script[^>]*?>.*?</script>" //去除所有脚本,中间部分也删除 // string regexstr = @"<img[^>]*>&

Bootstrap提示框

前面的话 提示框是一个比较常见的功能,一般来说是鼠标移动到特定元素上时,显示相关的提示语.本文将详细介绍Bootstrap提示框 基本用法 Bootstrap框架中的提示框,结构非常简单,常常使用的是按钮<button>标签或者链接<a>标签来制作.不管是使用按钮还是链接来制作提示框,他们都需要满足下列条件: 1.通过 title 属性的值来定义提示信息(也可以使用自定义属性 data-original-title 来设置提示信息),title属性的优先级高 2.通过 data-p

MyBatis-动态SQL

动态SQL是MyBatis的一个强大的特性.MyBatis 使用了基于强大的 OGNL(Object-Graph Navigation Language 的缩写,它是一种功能强大的表达式语言)表达式来避免了大部分其它的元素. MyBatis 通过映射的 SQL 语句使用强大的动态 SQL 来解决许多的问题. if:利用if实现简单的条件选择 choose(when,otherwise):相当于Java中的switch语句,通常与when和otherwise搭配 where:简化SQL语句中whe

C++:C++11新特性超详细版(1)

前言: 虽然目前没有编译器能够完全实现C++11,但这并不意味着我们不需要了解,学习它.深入学习C++11,你会发现这根本就是一门新的语言,它解决了c++98中许多遗留下来的问题.早晚会有一天,C++11便会普及大部分编译器.因此,提早做些准备也是应该的. 在此我想做一个关于C++11的专题,将C++11的新特性进行一一讲解,以通俗易懂的语言及例子帮助读者入门C++11.本文便是C++11新特性超详细版系列文章的第一篇, 即C++:[C++11]新特性超详细版(1). 不过我要强调的是,这些文章

帝国cms建站总结-(分页)

帝国cms分页代码文件t_functions.php 代码为: <?php if(!defined('InEmpireCMS')) { exit(); } define('InEmpireCMSTfun',TRUE); require_once(ECMS_PATH."e/class/userfun.php"); //列表模板分页函数 function sys_ShowListPage($num,$pagenum,$dolink,$dotype,$page,$lencord,$ok

某xss挑战赛闯关笔记

0x0 前言 在sec-news发现先知上师傅monika发了一个xss挑战赛的闯关wp([巨人肩膀上的矮子]XSS挑战之旅---游戏通关攻略(更新至18关)https://xianzhi.aliyun.com/forum/read/1462.html),去看了一下发现是前几天刚发现的平台,看了一下那个绕狗教程感觉挺不错的,xss却没有玩,那么正巧就玩一下,顺便学习一波别的师傅的思路. http://xss.tv 闯关地址:http://test.xss.tv 自己做了一些,也看了一下先知mon