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 回答