카테고리 없음

HTML Tag Strip 외

가을이짱짱 2005. 4. 27. 15:30
반응형

게시판에 웹사이트 주소가 입력되면 자동으로 <a>태그가 입력되고 수정할때는 <a>태그가 자동으로 제거하고 웹사이트 주소만 나타내게 하는 기능.

이렇게 함으로써 사용자는 html태그를 볼 일이 없으며 html을 몰라도 링크를 걸 수가 있다.

게다가 이 기능을 응용하게 되면 이미지도 처리할수 있을것이다.

 

완성도 99%... 웹사이트 주소 패턴만 조금씩 수정하면 된다.

 

필요한 기술: asp, 정규표현식.

 

'본문에 웹사이트 주소가 있으면 자동으로 <a>태그를 생성해주는 함수.
Function replaceLink(str)
    Dim patrn, regEx, match, matches, RetStr, regEx2, strEx

    patrn = "http:\/\/[0-9a-zA-Z./~_-]+( ?|$)"
    SET regEx = New RegExp            ' 정규식을 만듭니다.
    regEx.Pattern = patrn            ' 패턴을 설정합니다.
    regEx.IgnoreCase = True            ' 대/소문자를 구분하지 않도록 합니다.
    regEx.Global = True         ' 전체 문자열을 검색하도록 설정합니다.
    SET Matches = regEx.Execute(str)

    SET regEx2 = New RegExp            ' 정규식을 만듭니다.
    regEx2.IgnoreCase = True            ' 대/소문자를 구분하지 않도록 합니다.
    regEx2.Global = True         ' 전체 문자열을 검색하도록 설정합니다.

    For Each Match in Matches      ' Matches 컬렉션을 반복합니다.   
        regEx2.Pattern = Match.Value            ' 패턴을 설정합니다.
        strEx = Match.Value
        str = regEx2.Replace(str, "<a href='" & strEx & "' target='_blank'>" & strEx & "</a>")
    Next

    replaceLink = str
End Function

 

'<a>태그를 지워주는 함수.
Function delLink(str)
    Dim patrn, regEx, match, matches

    patrn = "(<a href ?='http:\/\/[0-9a-zA-Z./~_-]+( ?|$)' +target *= *'_blank'>)|(</a>)"
    SET regEx = New RegExp            ' 정규식을 만듭니다.
    regEx.Pattern = patrn            ' 패턴을 설정합니다.
    regEx.IgnoreCase = True            ' 대/소문자를 구분하지 않도록 합니다.
    regEx.Global = True         ' 전체 문자열을 검색하도록 설정합니다.
    SET Matches = regEx.Execute(str)

    For Each Match in Matches      ' Matches 컬렉션을 반복합니다.   
        str = regEx.Replace(str, "")
    Next

    delLink = str
End Function

반응형