在我的网站中,用户可以使用WYSIWYG控件添加HTML内容。我将这些内容保存到数据库中 我想搜索这些数据,所以我使用这个查询:
select * from htmlcontent where content like '%' + @searchValue + '%'
但是例如当用户搜索"<p>"
时,此查询会返回表格中的所有行。但我希望用户只能搜索html内容(用户可以在浏览器上看到的数据)而不是标签
我该怎么办?
已编辑: 我希望用户搜索html内容而不是标签。有些事情比如在浏览器中搜索(ctrl + F)
答案 0 :(得分:1)
您需要从用户输入字符串中删除所有HTML标记,然后使用已清理的字符串进行搜索。您可能希望将所有找到的代码替换为%
,以便在内容中找到标记时进行匹配。有关如何从输入字符串中删除标记的信息,请参阅this question
另一种方法是清理WYSIWYG字符串,然后搜索它。如果没有主要的字符串欺骗,这两个都不能在数据库中执行。你最好在ASP方面解决这个问题。
答案 1 :(得分:0)
我不确定,但我认为你可以在结果上使用TrimStart('<p>')
和TrimEnd('</p>')
来获得你想要的结果。
答案 2 :(得分:0)
为什么不在途中修改搜索字符串,以便在那里删除html标记。然后在搜索之前检查字符串是否为空。
搜索字符串如&lt; p&gt; Hello&lt; / p&gt;变得只是你好