我的应用程序中有一个blockquote,允许一些html元素,例如" br /"标签标签。但是,blockquote的其余部分应该接受html元素作为普通文本。例如,
<的东西> (没有空格是好的)然而<东西(没有空间不起作用)。除了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;
答案 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)
变量应该转义粗体标记,同时保持中断不变。