使用 ASP.NET,我如何可靠地从给定字符串中去除 HTML 标记(即不使用正则表达式)?我正在寻找类似 PHP 的 strip_tags
的东西.
示例:
<ul><li>Hello</li></ul>
输出:
“你好”
我尽量不重新发明轮子,但到目前为止我还没有找到满足我需求的东西。
最佳答案
如果它只是从字符串中剥离所有 HTML 标记,这对于正则表达式也可靠有效。替换:
<[^>]*(>|$)
全局为空字符串。之后不要忘记规范化字符串,替换:
[\s\r\n]+
用一个空格,并修剪结果。可选择将任何 HTML 字符实体替换回实际字符。
注意:
- 有一个限制:HTML 和 XML 允许在属性值中使用
>
。当遇到此类值时,此解决方案将返回损坏的标记。 - 该解决方案在技术上是安全的,例如: 结果绝不会包含任何可用于执行跨站点脚本或破坏页面布局的内容。只是不是很干净。
- 与所有 HTML 和正则表达式一样:
使用a proper parser如果您必须在所有情况下都做到正确。
关于c# - 如何从 ASP.NET 中的字符串中去除 HTML 标签?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/785715/