【SQL Server】清除HTML的SQL用户定义函数--不使用正则表达式

分类:数据库| 发布:camnprbubuol| 查看: | 发表时间:2010/9/30

 

如何在数据库中过滤掉html标签,而不使用正则表达式呢?问题的本质就是删除<和>之间的字符,只留下有效的字符.

下面的用户定义函数输入html字符,返回过滤结果的字符.注意在传入前请使用两个单引号,替换一个单引号.(不是用双引号替换单引号). 

  1. CREATE FUNCTION [dbo].[udf_StripHTML]  
  2. (@HTMLText VARCHAR(MAX))  
  3. RETURNS VARCHAR(MAX)  
  4. AS  
  5. BEGIN  
  6. DECLARE @Start INT  
  7. DECLARE @End INT  
  8. DECLARE @Length INT  
  9. SET @Start = CHARINDEX(’<’,@HTMLText)  
  10. SET @End = CHARINDEX(’>’,@HTMLText,CHARINDEX(’<’,@HTMLText))  
  11. SET @Length = (@End - @Start) + 1  
  12. WHILE @Start > 0  
  13. AND @End > 0  
  14. AND @Length > 0  
  15. BEGIN  
  16. SET @HTMLText = STUFF(@HTMLText,@Start,@Length,’’)  
  17. SET @Start = CHARINDEX(’<’,@HTMLText)  
  18. SET @End = CHARINDEX(’>’,@HTMLText,CHARINDEX(’<’,@HTMLText))  
  19. SET @Length = (@End - @Start) + 1  
  20. END  
  21. RETURN LTRIM(RTRIM(@HTMLText))  
  22. END  
  23. GO  

测试:  

SELECT dbo.udf_StripHTML(’<b>UDF at **.com </b><br><br><a href=http://www.**.com>www.**.com</a>’

结果:  

  1. UDF at **.com www.**.com
365据说看到好文章不转的人,服务器容易宕机
原创文章如转载,请注明:转载自郑州网建-前端开发 http://camnpr.com/
本文链接:http://camnpr.com/database/52.html