允许除<br/>标签以外的所有文字

时间:2015-06-24 03:03:06

标签: c# angularjs

我的应用程序中有一个blockquote,允许一些html元素,例如&#34; br /&#34;标签标签。但是,blockquote的其余部分应该接受html元素作为普通文本。例如,
&LT;的东西&gt; (没有空格是好的)然而&lt;东西(没有空间不起作用)。除了br / tags之外,我需要将此blockquote作为普通文本。任何想法?

我正在使用

的blockquote
 <span ng-bind-html="text" | TextToHtmlSafe">

在后端我使用以下方法清理字符串:

_allowedTags = new List<string> {"br"};

var replacedHtml = Regex.Replace(html,
            @"</?(\w+)[^>]*>",
            me => AllowedTags.Any(s => s.Equals(me.Groups[1].Value, StringComparison.OrdinalIgnoreCase))
                ? me.Value
                : HttpUtility.HtmlEncode(me.Value), RegexOptions.Singleline);

        return replacedHtml;

1 个答案:

答案 0 :(得分:0)

您是否允许任何其他代码(例如bbcode)?

如果是这样,您只需将所有[br]代码替换为[br],对html进行编码,然后将所有<br />代码替换回var html = "some html<br />with breaks and <b>bolds</b>"; var encode = HttpUtility.HtmlEncode(html.Replace("<br />", "[br]")).Replace("[br]", "<br />");

如下所示:

encode

然后@media screen and (min-width: 400px) 变量应该转义粗体标记,同时保持中断不变。