본문 바로가기

프로그래밍/MSSQL 정리필요

[DB_MSSQL] HTML 태그 제거 함수

반응형

HTML 태그를 제거하는 함수



-- HTML 태그 제거 함수 구현
CREATE FUNCTION dbo.cleanHTML(@strHTML VARCHAR(8000)) 
 
RETURNS VARCHAR(8000)
AS 
BEGIN
    DECLARE @strTEXT VARCHAR(8000)
    DECLARE @char VARCHAR(2)
    DECLARE @len INT
    DECLARE @i INT
 
    SET @strTEXT = ''
    SET @char = ''
 
    SET @len = LEN(@strHTML)
    SET @i = 1
 
    WHILE @i <= @len
        BEGIN
 
            SET @char = SUBSTRING(@strHTML, @i, 1) 
 
            IF @char = '<' 
                BEGIN
 
                    WHILE @i <= @len and @char <> '>'
                        BEGIN
 
                            SET @i = @i + 1
                            SET @char = SUBSTRING(@strHTML, @i, 1) 
 
                        END
                END
            ELSE
                BEGIN
 
                    SET @strTEXT = @strTEXT + REPLACE(REPLACE(REPLACE(@char, CHAR(9), ''), CHAR(10), ''), CHAR(13), '')
 
                END
 
   
            SET @i = @i + 1
 
        END
 
    SET @strTEXT = LTRIM(LTRIM(@strTEXT))
    SET @strTEXT = REPLACE(@strTEXT, ' ', ' ')
    SET @strTEXT = REPLACE(@strTEXT, '>', '>')
    SET @strTEXT = REPLACE(@strTEXT, '<', '<')
    SET @strTEXT = REPLACE(@strTEXT, '"', '''')
   
    RETURN (@strTEXT)
END


  예제


SELECT '<div>hi</div>' AS 'HTML'
	, dbo.cleanHTML('<div>hi</div>') AS 'cleanHTML'


반응형