c# - 如何从 ASP.NET 中的字符串中去除 HTML 标签?

标签 c# asp.net html regex string

使用 ASP.NET,我如何可靠地从给定字符串中去除 HTML 标记(即不使用正则表达式)?我正在寻找类似 PHP 的 strip_tags 的东西.

示例:

<ul><li>Hello</li></ul>

输出:

“你好”

我尽量不重新发明轮子,但到目前为止我还没有找到满足我需求的东西。

最佳答案

如果它只是从字符串中剥离所有 HTML 标记,这对于正则表达式也可靠有效。替换:

<[^>]*(>|$)

全局为空字符串。之后不要忘记规范化字符串,替换:

[\s\r\n]+

用一个空格,并修剪结果。可选择将任何 HTML 字符实体替换回实际字符​​。

注意:

  1. 有一个限制:HTML 和 XML 允许在属性值中使用 >。当遇到此类值时,此解决方案返回损坏的标记。
  2. 该解决方案在技术上是安全的,例如: 结果绝不会包含任何可用于执行跨站点脚本或破坏页面布局的内容。只是不是很干净。
  3. 与所有 HTML 和正则表达式一样:
    使用a proper parser如果您必须在所有情况下都做到正确。

关于c# - 如何从 ASP.NET 中的字符串中去除 HTML 标签?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/785715/

相关文章:

jquery - 选中的 block 只需要在滚动时固定在顶部

c# - 32 位与 64 位版本类型的条件编译的首选方法

c# - SMTPException 其中一个流已被使用,无法重置为原点

c# - MVC应用程序多次调用资源

c# - 动态添加角色以授权 Controller 的属性

javascript - 全局变量导致 Firefox 崩溃

html - 单击控件时轮播效果不起作用

c# - 抑制来自特定 DLL 的跟踪消息

asp.net - 使用共享属性进行身份验证是否安全?

c# - ASP.Net 中的图形 (c#)