ASP.NET を使用して、特定の文字列から HTML タグを確実に削除するにはどうすればよいでしょうか (正規表現を使用しない)? PHP のようなものを探していますstrip_tags
。
例:
<ul><li>Hello</li></ul>
出力:
"こんにちは"
車輪の再発明はしないようにしていますが、今のところ自分のニーズを満たすものは見つかっていません。
ベストアンサー1
剥ぎ取るだけなら全て文字列からの HTML タグ。 正規表現でも
確実に 機能します。置き換え:
<[^>]*(>|$)
空の文字列でグローバルに置き換えます。後で文字列を正規化して、次の文字列を置き換えることを忘れないでください。
[\s\r\n]+
1 つのスペースで区切って、結果をトリミングします。必要に応じて、HTML 文字エンティティを実際の文字に戻します。
注記:
- 制限があります: HTMLとXML
>
では属性値が許可されます。このソリューション意思このような値に遭遇した場合は壊れたマークアップを返します。 - このソリューションは技術的には安全です。つまり、結果にはクロスサイト スクリプティングを実行したり、ページ レイアウトを壊したりする可能性のあるものは一切含まれません。ただ、あまりクリーンではありません。
- HTML と正規表現のすべてと同様に:
使用適切なパーサーいかなる状況でも正しく行う必要がある場合。