我有一个文本框,客户可以在其中输入文本规则,他可以用HTML/CSS修改这些规则。问题是客户端已经插入了评论标签"<--";但还没有关闭它,所以它打断了页面的其余部分。避免这种情况的明智方法是什么?我唯一想到的是
string someString = "<!-- <div></div><p></p>";
model.Regulations= someString.Replace("<!--", "").Replace("--!>", "").Replace("<!--", "").Replace("--!>", "").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
}
如果您检测到错误,请将其作为输入文本框的验证问题,并让用户进行更正。我认为尝试自动更正此类问题将是徒劳的,并会强化用户的坏习惯和/或缺乏知识。