C#怎么清除字符串中HTML标签。。。

  因为用到了一款编辑器的原因,使得数据库中保存的数据会夹杂着一些HTML标签,之后导出的数据中就会出现一些不同的HTML的标签。严重影响用户的视觉体验(主要自己都看不下去了)。。。

下面是我将DataTable进行重新组装,清除HTML标签的方法:

 1         /// <summary>
 2         /// 重新组装DataTable(主要是为了清除DataTable数据中的HTML标签)
 3         /// </summary>
 4         /// <param name="new_dt">DataTable</param>
 5         /// <param name="parms">列名(可以是多个列),如"name","age"</param>
 6         /// <returns>组装后的DataTable</returns>
 7         public DataTable GetNewTable(DataTable new_dt, params object[] parms)
 8         {
 9             Func<object, string> fnClearHtml = (object obj) =>//清除HTML标签函数
10             {
11                 var HtmlStr = obj + "";
12                 //删除脚本
13                 HtmlStr = HtmlStr.Replace("\r\n", "");
14                 HtmlStr = Regex.Replace(HtmlStr, @"<script.*?</script>", "", RegexOptions.IgnoreCase);
15                 HtmlStr = Regex.Replace(HtmlStr, @"<style.*?</style>", "", RegexOptions.IgnoreCase);
16                 HtmlStr = Regex.Replace(HtmlStr, @"<.*?>", "", RegexOptions.IgnoreCase);
17                 //删除HTML
18                 HtmlStr = Regex.Replace(HtmlStr, @"<(.[^>]*)>", "", RegexOptions.IgnoreCase);
19                 HtmlStr = Regex.Replace(HtmlStr, @"([\r\n])[\s]+", "", RegexOptions.IgnoreCase);
20                 HtmlStr = Regex.Replace(HtmlStr, @"-->", "", RegexOptions.IgnoreCase);
21                 HtmlStr = Regex.Replace(HtmlStr, @"<!--.*", "", RegexOptions.IgnoreCase);
22                 HtmlStr = Regex.Replace(HtmlStr, @"&(quot|#34);", "\"", RegexOptions.IgnoreCase);
23                 HtmlStr = Regex.Replace(HtmlStr, @"&(amp|#38);", "&", RegexOptions.IgnoreCase);
24                 HtmlStr = Regex.Replace(HtmlStr, @"&(lt|#60);", "<", RegexOptions.IgnoreCase);
25                 HtmlStr = Regex.Replace(HtmlStr, @"&(gt|#62);", ">", RegexOptions.IgnoreCase);
26                 HtmlStr = Regex.Replace(HtmlStr, @"&(nbsp|#160);", "", RegexOptions.IgnoreCase);
27                 HtmlStr = Regex.Replace(HtmlStr, @"&(iexcl|#161);", "\xa1", RegexOptions.IgnoreCase);
28                 HtmlStr = Regex.Replace(HtmlStr, @"&(cent|#162);", "\xa2", RegexOptions.IgnoreCase);
29                 HtmlStr = Regex.Replace(HtmlStr, @"&(pound|#163);", "\xa3", RegexOptions.IgnoreCase);
30                 HtmlStr = Regex.Replace(HtmlStr, @"&(copy|#169);", "\xa9", RegexOptions.IgnoreCase);
31                 HtmlStr = Regex.Replace(HtmlStr, @"&#(\d+);", "", RegexOptions.IgnoreCase);
32                 HtmlStr = HtmlStr.Replace("<", "");
33                 HtmlStr = HtmlStr.Replace(">", "");
34                 HtmlStr = HtmlStr.Replace("\r\n", "");
35                 HtmlStr = HttpContext.Current.Server.HtmlEncode(HtmlStr).Trim();
36                 return HtmlStr;
37             };
38             if (new_dt != null)
39             {
40                 foreach (var p in parms)
41                 {
42                     var pp = p + "";
43                     new_dt.Columns.Add(p + "1", typeof(string));
44                     foreach (DataRow dr in new_dt.Rows)
45                         dr[p + "1"] = fnClearHtml(dr[pp]);
46
47                     new_dt.Columns.Remove(pp);
48                     new_dt.Columns[p + "1"].ColumnName = pp;
49                 }
50             }
51             return new_dt;
52         }

  其中fnClearHtml函数就是专门清除HTML标签的函数,但是小主在写下面删除列的时候发现 new_dt.Columns.Remove(pp)这句代码只是删除该列的数据以及该列的名字,这个列还会以Column1或Column2等其他的名称出现,列的总数还是那么多。。。

  希望看到小主文言文的大神,能给小主一些解答。

  小主感激不尽。。。。

时间: 2024-11-09 11:27:30

C#怎么清除字符串中HTML标签。。。的相关文章

如何清除字符串中的所有空格

如何清除字符串中的所有空格:关于清除字符串两端的空格已经有介绍了,具体可以参阅javascript如何去掉字符串两端的空格一章节,本章将介绍一下如何去除字符串中的所有空格,代码实例如下: <!DOCTYPE html> <html> <head> <meta charset=" utf-8"> <meta name="author" content="http://www.softwhy.com/&qu

js去除字符串中的标签

var str="<p>js去除字符串中的标签</p>"; var result=str.replace(/<.*?>/ig,""); console.log(result); 原文地址:https://www.cnblogs.com/Mrrabbit/p/8455139.html

Java清除字符串中重复出现的字符的代码

在工作过程,将做工程过程比较好的内容做个珍藏,如下内容是关于Java清除字符串中重复出现的字符的内容,应该是对大家有较大用. public class StringCtrl { public static void main(String[] args){ String s = "ajjbaacsa"; StringCtrl sctrl = new StringCtrl(); System.out.println(sctrl.rmRepeated(s)); } String rmRep

IOS去掉字符串中HTML标签的方法

后台返回的字符串中带HTML标签,如果不用webView加载解析的话,就直接去掉. 1 -(NSString *)filterHTML:(NSString *)html 2 { 3 NSScanner * scanner = [NSScanner scannerWithString:html]; 4 NSString * text = nil; 5 while([scanner isAtEnd]==NO) 6 { 7 //找到标签的起始位置 8 [scanner scanUpToString:@

[Python正则表达式] 字符串中xml标签的匹配

现在有一个需求,比如给定如下数据: 2009-2-12 9:22:2 #### valentine s day 2011 #### sex is good for you #### Making love pleasures life genuinely good say researchers does healthy sex life boost mood growing evidence boosts physical increasing longevity reducing risk

清除字符串中的换行符

实际应用场景中,客户输入的地址中含有回车换行,导致格式转换中出错,因此需要清除掉,方法有二: 1.替换,这个方法只能清除一个回车换行 '检测地址中是否有回车换行 addr = Cells(row1, 12) If InStr(1, addr, Chr(10), vbBinaryCompare) > 0 Then MsgBox addr addr = Replace(addr, Chr(10), "", , , vbBinaryCompare) addr = Replace(add

python清除字符串中无用字符

将列表val_list中包含的非法字符去掉,illegal_char是非法字符列表 def clear(): illegal_char = [' ','#','%','_','@'] tmp_list = [] val_list = ['aaaaaaaa A A A 1%dddd%[email protected]@@@@@111 #111', 'bbbbbbbbb_ggg_g_g-bbLS##222222222222###-'] for i in illegal_char: for j in

清除字符串空格

1.清除字符串中右边的空格 从字符串尾部开始,找到非空格处,将下一个字符置为0即可. //清除右边空格 #include<stdio.h> int main() { char buf[] = "hello world "; int len = 0; //calculate the length of string while(buf[len++]); len--; int i; for(i = len - 1; i >= 0; i--) { if(buf[i] !=

js去除字符串中所有html标签及&amp;nbsp符号

近日在做项目的时候,经常会在页面上处理一些数据.结果发现自己js掌握的并不是很好.那就在这里记录js的点点滴滴吧. 1. 去除字符串中的 html 标签 function delHtmlTag(str){ return str.replace(/<[^>]+>/g,""); } var str = "<span style='display:none;'>This is test</span><br/>"; st