1

ASP.NET MVC と CKEditor (Basic) を使用して入力を取得しています (このスタック オーバーフロー RTE とほぼ同じです)。ユーザーは太字、斜体、リンクに制限されています。

誰かが目的の HTML を含む CURL リクエストをコントローラーに発行した場合に備えて、このサーバー側を検証する必要があると想定しています。(IEなので、クライアント側の検証によって制限されませんでした)。

したがって、太字、斜体、リンクタグ、リストを許可する必要がありますが、他には何もありません。どうすればこれを達成できますか? ビュー モデルにカスタム バリデーターを作成しますが、このカスタム バリデーターを構築する最善の方法は何ですか? などを探すには?

4

1 に答える 1

1

これは、正規表現とネガティブな先読みによって実現できます。

そのようなものは、、、、、、、、、およびを除くすべての<(?!br/|br /|a|/a|strong|/strong|b|/b|i|/i|ul|/ul|li|/li>).+?>タグに一致します。<br /><a></a><strong></strong><b></b><i></i><ul></ul><li></li>

次に、一致したオカレンスを空の文字列に置き換えることができます。

たとえば、この入力(regextester.comでテスト済み):

test <a href="http://www.test.com">test link</a>
Some <strong>text in bold</strong> and <b>another one</b> but also something
in <i>italic</i>
<ul>
    <li>Now</li>
    <li>a list</li>
</ul>
<table>
    <tr>
         <td>And a table</td>
    </tr>
</table>
<br />
<hr />

になるだろう:

test <a href="http://www.test.com">test link</a>
Some <strong>text in bold</strong> and <b>another one</b> but also something 
in <i>italic</i>
<ul>
    <li>Now</li>
    <li>a list</li>
</ul>

And a table

<br />
于 2013-02-06T13:07:01.620 に答える