<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.1//EN" "http://www.wapforum.org/DTD/wml_1.1.xml">
<wml>
<head><meta forua="true" http-equiv="Cache-Control" content="max-age=0" /></head>
<card title="【SQL Server】清除HTML的SQL用户定义函数--不使用正则表达式" id="card1">
<p> 游客</p><p>
标题:【SQL Server】清除HTML的SQL用户定义函数--不使用正则表达式<br/>
正文:<br/>
 如何在数据库中过滤掉html标签,而不使用正则表达式呢?问题的本质就是删除&amp;lt;和&amp;gt;之间的字符,只留下有效的字符.下面的用户定义函数输入html字符,返回过滤结果的字符.注意在传入前请使用两个单引号,替换一个单引号.(不是用双引号替换单引号). CREATE FUNCTION [dbo].[udf_StripHTML]  (@HTMLText VARCHAR(MAX))  RETURNS VARCHAR(MAX)  AS  BEGIN  DECLARE @Start INT  DECLARE @End INT  DECLARE @Length INT  SET @Start = CHARINDEX(’&amp;lt;’,@HTMLText)  SET @End = CHARINDEX(’&amp;gt;’,@HTMLText,CHARINDEX(’&amp;lt;’,@HTMLText))  SET @Length = (@End - @Start) + 1  WHILE @Start &amp;gt; 0  AND @End &amp;gt; 0  AND @Length &amp;gt; 0  BEGIN  SET @HTMLText = STUFF(@HTMLText,@Start,@Length,’’)  SET @Start = CHARINDEX(’&amp;lt;’,@HTMLText)  SET @End = CHARINDEX(’&amp;gt;<br/><a href="http://camnpr.com/wap.asp?mode=WAP&amp;act=View&amp;id=52&amp;Page=1">[&lt;&lt;]</a><a href="http://camnpr.com/wap.asp?mode=WAP&amp;act=View&amp;id=52&amp;Page=1">[[1]]</a><a href="http://camnpr.com/wap.asp?mode=WAP&amp;act=View&amp;id=52&amp;Page=2">[2]</a><a href="http://camnpr.com/wap.asp?mode=WAP&amp;act=View&amp;id=52&amp;Page=2">[&gt;&gt;]</a><br/>
<br/>
<a href="wap.asp?act=Com&amp;id=52">查看评论(0)</a><br/>
<a href="wap.asp?act=AddCom&amp;inpId=52">发表评论</a><br/><br/>

<br/>

<br/>
<a href="http://camnpr.com/wap.asp">首页</a>
</p>
</card>
</wml>