【问题标题】:Custom validation of CKEditor (RTE) in ASP.NET MVC在 ASP.NET MVC 中自定义验证 CKEditor (RTE)
【发布时间】:2013-01-30 23:02:27
【问题描述】:
我正在使用 ASP.NET MVC 和 CKEditor (Basic) 来获取输入(几乎完全像这个堆栈溢出 RTE。)用户仅限于粗体、斜体、链接。
我假设我需要验证这个服务器端,以防有人向我的控制器发出带有任何所需 HTML 的 CURL 请求。 (即,它们不受客户端验证的限制)。
所以我需要允许,粗体,斜体,链接标签,列表,但绝对没有别的,这怎么实现?我将在我的视图模型上有一个自定义验证器,但是构建这个自定义验证器的最佳方式是什么?要寻找什么等?
【问题讨论】:
标签:
asp.net
asp.net-mvc
validation
ckeditor
rich-text-editor
【解决方案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 />