转义/替换字符串中的.cs.html注释标记



我有一个文本框,客户可以在其中输入文本规则,他可以用HTML/CSS修改这些规则。问题是客户端已经插入了评论标签"&lt--"但还没有关闭它,所以它打断了页面的其余部分。避免这种情况的明智方法是什么?我唯一想到的是

string someString = "<!-- <div></div><p></p>";
model.Regulations= someString.Replace("<!--", "").Replace("--!>", "").Replace("&lt;!--", "").Replace("--!&gt;", "").Replace("@*", "").Replace("*@", "");

我觉得这不太干净。最好的办法是什么?

您可以使用HTML敏捷包。

这将允许您将HTML加载到HtmlDocument中并检查错误:

var htmlDoc = new HtmlDocument();
htmlDoc.LoadHtml("<!-- <div></div><p></p>");
if(htmlDoc.ParseErrors.Any())
//Now you can display an error and have user correct it
foreach (var error in htmlDoc.ParseErrors)
{
// Additionally you can get each error to display back to user
}

如果您检测到错误,请将其作为输入文本框的验证问题,并让用户进行更正。我认为尝试自动更正此类问题将是徒劳的,并会强化用户的坏习惯和/或缺乏知识。

最新更新