+ -
当前位置:首页 → 问答吧 → t_sql如何过滤带有html标签的字符

t_sql如何过滤带有html标签的字符

时间:2011-12-14

来源:互联网

rt!

作者: aiguo0713   发布时间: 2011-12-14

SQL code
select * from tb where charindex('<html>',content)>0

作者: qianjin036a   发布时间: 2011-12-14

SQL code
not like '%html%'

作者: jwdream2008   发布时间: 2011-12-14

这个在程序里用正则表达式过滤还是好一点。

作者: ssp2009   发布时间: 2011-12-14

估计是我没说清楚问题

我的想法是获得一个已经去除html标签的字符

例:replace(‘fdsa>’,'>','')

作者: aiguo0713   发布时间: 2011-12-14

引用 3 楼 ssp2009 的回复:
这个在程序里用正则表达式过滤还是好一点。

谢谢你的建议,但前提是必须在T_SQL中实现

作者: aiguo0713   发布时间: 2011-12-14

像<a></a><input><select><p><hr><object><img>这些都要过滤掉的吧

作者: pengxuan   发布时间: 2011-12-14

用charindex函数

作者: huangqing_80   发布时间: 2011-12-14

引用 6 楼 pengxuan 的回复:
像<a></a><input><select><p><hr><object><img>这些都要过滤掉的吧


对的,对的!

作者: aiguo0713   发布时间: 2011-12-14

该回复于2011-12-14 10:40:56被管理员删除

  • 对我有用[0]
  • 丢个板砖[0]
  • 引用
  • 举报
  • 管理
  • TOP
#10楼 得分:0回复于:2011-12-14 10:43:17
引用 8 楼 aiguo0713 的回复:

引用 6 楼 pengxuan 的回复:
像<a></a><input><select><p><hr><object><img>这些都要过滤掉的吧


对的,对的!


SQL code
declare @html nvarchar(1000)
set @html='<a>http://www.aaa.com</a><input><select>afs<p>fasdf<hr>fasd<object>fasd<img>'
while CHARINDEX('<',@html)>0
set @html=STUFF(@html,charindex('<',@html),charindex('>',@html)-charindex('<',@html)+1,'')
select @html
/*
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
http://www.aaa.comafsfasdffasdfasd

(1 行受影响)

*/

作者: chongjingsky   发布时间: 2011-12-14

引用 10 楼 qianjin036a 的回复:
引用 8 楼 aiguo0713 的回复:

引用 6 楼 pengxuan 的回复:
像<a></a><input><select><p><hr><object><img>这些都要过滤掉的吧


对的,对的!



SQL code

declare @html nvarchar(1000)
set @html='<a>http://www.aaa.com</a><in……


可以不用循环吗?
因为我的那个字符是在一句sql中查出来的(select replace(...) from tb1)。可能不太好先赋值到变量里边

作者: qianjin036a   发布时间: 2011-12-14

SQL code
写函数

Create Function [dbo].[f_trimstr](@str nvarchar(4000))

returns nvarchar(4000)

AS

begin

declare @d int;   

    declare @dd int;   

    declare @sumstr nvarchar(4000);   

    while (Charindex('<',@str)!=0 and Charindex('>',@str)!=0) 

    begin      

      set @d = Charindex('<',@str);   

      set @dd = Charindex('>',@str);   

      set @sumstr = Substring(@str,1,@d-1);   

      set @str = Substring(@str,@dd+1,len(@str));   

      set @str = @sumstr+@str;   

end

set @str=Replace(@str,'&nbsp;','')

return @str;

end

作者: aiguo0713   发布时间: 2011-12-14