求一个过滤字符串的方法

live_net 2009-08-17 11:06:06
同时满足
1:过滤所有HTML标签 不光光是将标签两边的尖括号去掉,包括标签里面的内容一起过滤掉,例如遇到<br />标记时,直接删除,而不是过滤了< 和 > 剩下 br /。
2:同时过滤掉所有&开头;结束的所有标记,包括这两个符号之间的内容 例如:   · —等 当然不光光是这个空格标记,这只是例子,
3:过滤掉" "这个引号里面的空格,这个空格并不是' '这个空格,是在"全角"状态下的空格。
...全文
78 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
live_net 2009-08-17
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 live_net 的回复:]
引用 6 楼 wuyi8808 的回复:
C# code// 同时过滤3个条件:output= Regex.Replace(input,@" <(?:""[^""]*""|'[^']*'|[^""'>])*>|&[^&;]*;| ","");

全角状态下的大空格是过滤掉了, 空格也过滤掉了,却发现最普通的空格没过滤掉..可能是我没提出来

' '就是这个引号里面的空格,能不能把它也加进去。
[/Quote]
搞定了,很来那么简单,只要在后面在加个'| '就可以了,
结贴。
live_net 2009-08-17
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 wuyi8808 的回复:]
C# code// 同时过滤3个条件:output= Regex.Replace(input,@"<(?:""[^""]*""|'[^']*'|[^""'>])*>|&[^&;]*;| ","");
[/Quote]
全角状态下的大空格是过滤掉了, 空格也过滤掉了,却发现最普通的空格没过滤掉..可能是我没提出来

' '就是这个引号里面的空格,能不能把它也加进去。
John_Hee 2009-08-17
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 wuyi8808 的回复:]
C# code// 同时过滤3个条件:output= Regex.Replace(input,@"<(?:""[^""]*""|'[^']*'|[^""'>])*>|&[^&;]*;| ","");
[/Quote]
wuyi8808 2009-08-17
  • 打赏
  • 举报
回复
// 同时过滤3个条件:
output = Regex.Replace(input, @"<(?:""[^""]*""|'[^']*'|[^""'>])*>|&[^&;]*;| ", "");
winner2050 2009-08-17
  • 打赏
  • 举报
回复
public static string NoHTML(string Htmlstring)
{
if (string.IsNullOrEmpty(Htmlstring) == true)
{
return string.Empty;
}

Htmlstring = Regex.Replace(Htmlstring, @"<script[^>]*?>.*?</script>", "", RegexOptions.IgnoreCase);
Htmlstring = Regex.Replace(Htmlstring, @"<style[^>]*?>.*?</style>", "", RegexOptions.IgnoreCase);
Htmlstring = Regex.Replace(Htmlstring, @"-->", "", RegexOptions.IgnoreCase);
Htmlstring = Regex.Replace(Htmlstring, @"<!--.*", "", RegexOptions.IgnoreCase);
Htmlstring = Regex.Replace(Htmlstring, "<[^>]*>", "", RegexOptions.Compiled);
Htmlstring = Regex.Replace(Htmlstring, @"&.*?;", " ", RegexOptions.Compiled);
Htmlstring = Regex.Replace(Htmlstring, @"([\r\n])[\s]+", " ", RegexOptions.Compiled);
Htmlstring = Htmlstring.Replace(" ","");

return Htmlstring;
}
wuyi8808 2009-08-17
  • 打赏
  • 举报
回复
// 1:过滤所有HTML标签
output = Regex.Replace(input, @"<(?:""[^""]*""|'[^']*'|[^""'>])*>", "");
wuyi8808 2009-08-17
  • 打赏
  • 举报
回复
// 2:同时过滤掉所有&开头;结束的所有标记,包括这两个符号之间的内容
output = Regex.Replace(input, "&[^&;]*;", "");
live_net 2009-08-17
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 andyxl 的回复:]
/ 楼主的意思。是不是屏蔽HTML代码?

如果是的话。

可以考虑使用

htmldecode
[/Quote]
我现在用的就是 HtmlEncode 但是这样不太好,HTML标记确实不会起到相应效果,但是,这些标记文字会显示在网页上,影响,美观,和内容的完整性。
andyxl 2009-08-17
  • 打赏
  • 举报
回复
/ 楼主的意思。是不是屏蔽HTML代码?

如果是的话。

可以考虑使用

htmldecode

62,074

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧