过滤html字符的方法

昨天在看公司网站的产品详细页面,发现只有一个公司的JS产品轮换特效不会出,找了半天,程序都是一样的,原因是什么呢?原来是公司的别名是xiandahg,里面含有and字符被过滤掉了。

public static string NoHTML(string Htmlstring) //去除HTML标记
{
//删除脚本
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 = Htmlstring.Replace("[\\s]{2,{", " ");
Htmlstring = Htmlstring.Replace("( <[b|B][r|R]/*>)+|( <[p|P](.|\\n)*?>)", "\n"); // <br>
Htmlstring = Htmlstring.Replace("(\\s*&[n|N][b|B][s|S][p|P];\\s*)+", " "); //&nbsp;
Htmlstring = Htmlstring.Replace(" <(.|\\n)*?>", string.Empty); //any other tags
//Htmlstring = Htmlstring.Replace(" ", "&nbsp;");
Htmlstring = Htmlstring.Replace("&nbsp;", "");
Htmlstring = Htmlstring.Replace("\r\n", "<br>");
Htmlstring = Htmlstring.Replace("=", "");
Htmlstring = Htmlstring.Replace("%", "");
Htmlstring = Htmlstring.Replace("‘", "");
Htmlstring = Htmlstring.Replace("select ", "");
Htmlstring = Htmlstring.Replace("insert ", "");
Htmlstring = Htmlstring.Replace("delete ", "");
Htmlstring = Htmlstring.Replace(" or", "");
Htmlstring = Htmlstring.Replace("exec", "");
Htmlstring = Htmlstring.Replace("--", "");
Htmlstring = Htmlstring.Replace(" and", "");
Htmlstring = Htmlstring.Replace("where", "");
Htmlstring = Htmlstring.Replace("update", "");
Htmlstring = Htmlstring.Replace("script", "");
Htmlstring = Htmlstring.Replace("iframe", "");
Htmlstring = Htmlstring.Replace("master", "");
Htmlstring = Htmlstring.Replace("exec", "");
Htmlstring = Htmlstring.Replace(" AND", "");
Htmlstring = Htmlstring.Replace(" And", "");
Htmlstring = Htmlstring.Replace(" AnD", "");
Htmlstring = Htmlstring.Replace(" ANd", "");
Htmlstring = Htmlstring.Replace(" aND", "");
Htmlstring = Htmlstring.Replace(" aNd", "");
Htmlstring = Htmlstring.Replace(" anD", "");

Htmlstring = Htmlstring.Replace("exists", "");
Htmlstring = Htmlstring.Replace("drop", "");
Htmlstring = Htmlstring.Replace("996008E", "");
Htmlstring = Htmlstring.Replace("ar(124)", "");
Htmlstring = Htmlstring.Replace("1and", "");
Htmlstring = Htmlstring.Replace("0and", "");
Htmlstring = Htmlstring.Replace("chr(", "");

Htmlstring = HttpContext.Current.Server.HtmlEncode(Htmlstring).Trim();

return Htmlstring;
}

时间: 2024-10-15 15:23:08

过滤html字符的方法的相关文章

C#(去、过滤)掉字符中的换行符

原文:C#(去.过滤)掉字符中的换行符 原文地址: http://www.feedou.com/articlepickservlet?commandkey=singlearticle&articleID=5c42b75f1b435084011b49ba083217d4 本文介绍的方法需要先导入命名空间:usingSystem.Text.RegularExpressions; 字符串里所有的的换行符都去掉:textStr = Regex.Replace(textStr, @"[/n/r]&

提取数字、英文、中文、过滤重复字符等SQL函数(含判断字段是否有中文)

在日常应用中,往往根据实际需求录入一些值,而这些值不能直接使用,所以Sql中经常会对字段值进行一些常规的处理.这里搜集了(提取数字.英文.中文.过滤重复字符.分割字符的方法),方便日后查询使用. 一.判断字段值是否有中文 --SQL 判断字段值是否有中文 create function fun_getCN(@str nvarchar(4000)) returns nvarchar(4000) as begin declare @word nchar(1),@CN nvarchar(4000) s

在ArcEngine下实现图层属性过滤的两种方法

转自chanyinhelv原文 在ArcEngine下实现图层属性过滤的两种方法 有时候,我们要对图层上的地物进行有选择性的显示,以此来满足实际的功能要求. 按下面介绍的方法可轻松实现图层属性过滤显示: 1.当图层已经加载时 private void ShowByFilter(AxMapControl sMapCtr, IFeatureLayer sFlyr, string sFilter) { ESRI.ArcGIS.Carto.IFeatureLayerDefinition pDef = (

Java中生成随机字符的方法总结

package learnExercise; public class RandomCharacter { public static char getRandomCharacter(char ch1,char ch2){ return (char)(ch1+Math.random()*(ch2-ch1+1));//因为random<1.0,所以需要+1,才能取到ch2 } public static char getRandomLowerCaseLetter(){ return getRand

网页内容的html标签补全和过滤的两种方法

网页内容的html标签补全和过滤的两种方法: 如果你的网页内容的html标签显示不全,有些表格标签不完整而导致页面混乱,或者把你的内容之外的局部html页面给包含进去了,我们可以写个函数方法来补全html标签以及过滤掉无用的html标签. php使HTML标签自动补全,闭合,过滤函数方法一: 代码: function closetags($html) { preg_match_all('#<(?!meta|img|br|hr|input\b)\b([a-z]+)(?: .*)?(?<![/|/

JS删除String里某个字符的方法

关于JS删除String里的字符的方法,一般使用replace()方法.但是这个方法只会删除一次,如果需要将string里的所以字符都删除就要用到正则. var str = "abcdaabbssaaa"; var reg = new RegExp("a","g"); var a = str.replace(reg,""); console.log(a); 这里用 new RegExp()这个方法创建正则,第一个参数"

JAVA中替换字符的方法replace和replaceAll 区别

replace和replaceAll是JAVA中常用的替换字符的方法,它们的区别是:1)replace的参数是char和CharSequence,即可以支持字符的替换,也支持字符串的替换(CharSequence即字符串序列的意思,说白了也就是字符串);2)replaceAll的参数是regex,即基于规则表达式的替换,比如,可以通过replaceAll("\\d", "*")把一个字符串所有的数字字符都换成星号;相同点是都是全部替换,即把源字符串中的某一字符或字符

过滤敏感字符

原文:过滤敏感字符 源代码下载地址:http://www.zuidaima.com/share/1550463636458496.htm 有疑问请联系我.

Struts过滤器过滤某些字符

(1)天朝的规矩做项目的时候可能需要过滤某些特定的字符,在更多的用途是安全的考虑,下边就是一个过滤字符的简单案例: (2)过滤器代码如下: package com.lc.filter; import java.io.IOException; import javax.servlet.Filter; import javax.servlet.FilterChain; import javax.servlet.FilterConfig; import javax.servlet.ServletExc