' -------------------------------------------------------- ' Function Name : regular_replace ' Description : 정규표현식을 이용한 대치 ' -------------------------------------------------------- Function eregi_replace(pattern, replace, text) Dim eregObj ' Create regular expression Set eregObj= New RegExp eregObj.Pattern= pattern ' Set Pattern(패턴 설정) eregObj.IgnoreCase = True ' Set Case Insensitivity(대소문자 구분 여부) eregObj.Global = True ' Set All Replace(전체 문서에서 검색) eregi_replace = eregObj.Replace(text, replace) ' Replace String End Function Function delete_tag(atcText) ' Tag를 삭제한다. atcText= eregi_replace(" atcText= eregi_replace("(.*)","",atcText) atcText= eregi_replace("<[/]*(div|layer|body|html|head|meta|form|input|select|textarea|base)[^>] *>","",atcText) atcText= eregi_replace("<(style|script|title|link)(.*)","",atcText) atcText= eregi_replace("<[/]*(script|style|title|xmp)>","",atcText) atcText= eregi_replace("([a-z0-9]*script:)","deny_$1",atcText) atcText= eregi_replace("<(\?|%)","<$1",atcText) atcText= eregi_replace("(\?|%)>","$1>",atcText) ' Tag가 제거된 문자열을 리턴한다. delete_tag = atcText End Function ' -------------------------------------------------------- ' Function Name: auto_link ' Description: 문서 내용에 있는 Url를 찾아내어 자동으로 링크를 구성하는 함수 ' -------------------------------------------------------- Function auto_link(text) Dim regex_file, regex_http, regex_mail regex_file= "gz|tgz|tar|gzip|zip|rar|mpeg|mpg|exe|rpm|dep|rm|ram|asf|ace|viv|avi|mid|gif|jpg|png|bmp|ep s|mov" regex_http = "(http|https|ftp|telnet|news):\/\/(([\xA1-\xFEa-z0-9_\-]+\.[][\xA1-\xFEa-z0- 9:;&#@=_~%\?\/\.\,\+\-]+)(\/|[\.]*[a-z0-9]))" regex_mail = "([\xA1-\xFEa-z0-9_\.\-]+)@([\xA1-\xFEa-z0-9_\-]+\.[a-z0-9\-\._\-]+[\.]*[\xA1- \xFEa-z0-9\?=]*)" ' img tag 와 a tag 의 경우 링크가 여러줄에 걸쳐 이루어져 있을 경우 ' 이를 한줄로 합침 (합치면서 부가 옵션들은 모두 삭제함) text = eregi_replace("<(a|img)[^>]*(href|src)[^>]*(" & regex_http & "|mailto:" & regex_mail & ")[^>]*>","<$1 $2=""$3"">", text) ' 특수문자와 링크시 target 삭제 text = eregi_replace("&(quot|gt|lt)","!$1", text) ' html 사용시 Link 보호 text = eregi_replace("href=""(" & regex_http & ")""[^>]*>","href=""$2_orig://$3"" target=""_blank"">", text) text = eregi_replace("href=""mailto:(" & regex_mail & ")"">","href=""mailto:$2#-#$3"">", text) text = eregi_replace("(background|codebase|src)[ \n]*=[\n""' ]*(" & regex_http & ")[""'] *","$1=""$3_orig://$4""",text) '링크가 안된 Url및 Email Address 자동 링크 text = eregi_replace("(" & regex_http & ")" ,"$1", text) text = eregi_replace("(" & regex_mail & ")","$1", text) ' 보호를 위해 치환된것 복구 text = eregi_replace("!(quot|gt|lt)","&$1", text) text = eregi_replace("(http|https|ftp|telnet|news|mms)_orig","$1", text) text = eregi_replace("#-#","@",text) ' File Link시 Target을 삭제 text = eregi_replace("(\.(" & regex_file & ")"") target=""_blank""","$1", text) auto_link = text End Function
반응형
'lang > asp' 카테고리의 다른 글
ASP 함수모음 (0) | 2006.10.20 |
---|---|
ASP, MSSQL 트랙백 (0) | 2006.10.20 |
ASP 기본문법 (0) | 2006.10.20 |
서버에 부담을 줄이려면 고려하라 (0) | 2006.10.20 |
ASP 오류 번호 정리 (0) | 2006.10.20 |