게시판에 웹사이트 주소가 입력되면 자동으로 <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