권장 : ASP 3.0 고급 프로그래밍 (32) 7.2.4 클라이언트 스크립트 오류 지금까지 ASP의 오류에 대해 배웠습니다. 그러나 ASP는 종종 클라이언트 스크립트가 포함 된 웹 페이지를 만드는 데 사용됩니다. 클라이언트 코드를 포함하는 <cript> 요소가 runat = server로 설정되지 않은 경우
지난번에, 우리는 ASP에서 다양한 데이터의 검증을 달성하기 위해 정규 표현 객체를 사용하는 방법에 대해 이야기했습니다. 이 기사는 정규 표현 객체의 강력한 기능을 설명합니다. 다음으로 정규 표현 객체의 다른 기능을 살펴 보겠습니다. 인터넷을 서핑 할 때, 특히 다양한 포럼을 탐색 할 때 종종 UBB 코드라는 단어가 나타납니다. UBB 코드는 무엇입니까? UBB 코드는 Ultimate Bulletin Board (해외 BBS 프로그램 및 중국의 많은 장소 가이 프로그램을 사용하는 특별 태그 인 HTML의 변형입니다. HTML 코드의 포럼에 대한 사용자의 의도하지 않은 또는 의도적 인 공격을 피하기 위해 다양한 포럼은 기본적으로 HTML 코드를 차단합니다. 그러나 포럼을 더 화려하게 만들기 위해 포럼은 [url], [/url], [red], [/red]와 같은 HTML의 태그와 유사한 몇 가지 사용자 정의 태그 태그를 열 것입니다. 이러한 방식으로 HTML 코드와 동등한 일부 기능을 제공 할 수 있으며 포럼은 악의적 인 공격으로부터 피할 수 있습니다. 이 사용자 정의 태그는 일반적으로 UBB 코드로 알려져 있습니다. 현재, 모든 세련된 포럼은 Dynamic Technology Network의 포럼과 같은 UBB 코드와 같은 UBB 코드를 지원합니다. 이제 정규 표현 객체를 사용하여 우리 자신의 다채로운 UBB 코드를 구현합시다.
우선, 서버 측 (IIS 또는 PW)에는 vbscript5.0 지원 환경이 있어야합니다. 이는 일반적으로 IE5.X가 설치된 후에 이미 정규식 객체를 지원할 수 있음을 의미합니다.
일반적인 표현식 객체의 일반적인 방법 및 속성 사용 방법과 관련하여,이 기사에서 이미 ASP에서 데이터 검증을 구현하기 위해 정규식 객체를 사용하는 것에 대해 소개했습니다. 해당 기사를 참조 할 수 있습니다. 여기에서는 주로 UBB 코드를 구현하는 주요 정규 표현 객체 메소드를 소개합니다. 대체 () 메소드.
교체 방법의 구문은 다음과 같습니다.
교체 방법의 구문은 다음과 같습니다.
설명하다
정규 표현식 조회에서 발견 된 텍스트를 교체하십시오.
문법
Object.replace (String1, String2)
교체 방법의 구문에는 다음 부분이 포함됩니다.
부분 설명
필요한 개체. 항상 regexp 객체의 이름입니다.
String1이 필요합니다. String1은 텍스트 교체를 수행 할 문자열입니다.
String2 필수. String2는 대체 텍스트 문자열입니다.
설명
대체 된 텍스트의 실제 패턴은 Regexp 객체의 패턴 속성을 통해 설정됩니다.
교체 메소드는 regexp.pattern 텍스트가 String2로 대체 된 String1의 사본을 반환합니다. 일치하는 텍스트가 없으면 원래 String1의 사본이 반환됩니다.
다음으로 결국 구현하려는 UBB 코드의 종류를 결정하고 싶습니다. 이번에 구현하려는 UBB 코드 기능은 다음과 같습니다.
URL 하이퍼 링크
메시지에 하이퍼 링크를 추가하고 다음 방식으로 삽입하십시오 (UBB 코드는 대담합니다).
[url] www.test.net [/url]
위와 같이 삽입하면 UBB 코드는 URL을 자동으로 연결하고 사용자가 새 창을 클릭 할 때 링크가 열려 있는지 확인합니다.
이메일 링크
메시지에 이메일 하이퍼 링크를 추가하고 다음 예제를 따라 삽입하십시오 (UBB 코드는 대담합니다).
[이메일] [email protected] [/email]
위의 삽입과 같이 UBB 코드는 자동으로 이메일에 연결됩니다.
이미지에 추가하십시오
메시지에 이미지를 추가하고 다음 예제를 따라 삽입하십시오 (UBB 코드는 대담합니다).
[IMG] http://www.test.net/test.gif [/img]
위의 예에서는 UBB 코드가 메시지에 이미지를 자동으로 표시하게합니다.
다른 태그
이러한 태그도 있습니다. U small h1 h2 h3 h4 h5 h6 스트라이크 깜박임 SUB SUP DEL 사전 큰,이 태그의 기능은 HTML의 기능과 동일합니다.
[H1] 이것은 제목입니다 [/h1]
[/tag]는 필수입니다
텍스트 단락을 색상으로 표시하십시오
이것은 특별한 태그입니다
[#ff0000] 빨간색 단어 [/#]
#빨간색은 FF0000, 그린은 00ff00, 파란색은 0000ff와 같은 색상의 16 진 RGB 코드
위의 것과 유사한 다양한 다른 UBB 코드의 구현 방법에 대해서는 위의 UBB 코드 구현을 정규식 객체의 강력한 기능을 설명하기위한 예제로 사용합니다.
UBB 코드 함수를 쉽게 구현하기 위해 대체 () 메소드와 해당 템플릿을 주로 사용합니다. 여기서 우리는 주로 첫 번째 함수를 교체 한 두 가지 기능을 사용합니다. 이 함수에 의해 구현 된 함수는 주로 정규식 객체를 캡슐화하고 세 가지 입력 매개 변수를 제공하는 것입니다.
PART
이 매개 변수는 UBB 코드의 일치하는 템플릿을 전달합니다
str
이 매개 변수는 기사 내용과 같이 UBB 모드로 처리 될 문자열을 전달합니다.
replstr
이 매개 변수는 일치하는 HTML 코드 언어를 전달합니다.
replaceTest 함수의 종료 매개 변수는 템플릿 매칭으로 대체 된 문자열입니다.
교체 된 기능 코드는 다음과 같습니다.
함수 replaceTest (PATRN, STR, Replstr)
Dim Regex, str1 '은 변수를 만듭니다.
str1 = trim (str)
regex = new Regexp '정규 표현식 생성을 설정하십시오.
regex.pattern = patrn '세트 모드.
regex.ignorecase = true 'SET CASE에 민감한 지 여부.
replacetest = regex.replace (str1, replstr) ''교체품으로.
Regex를 설정하십시오 = Nothing '정규 표현 객체를 파괴하십시오
엔드 기능
우리가 쓰려는 두 번째 함수는 UBB () 함수입니다. 이 기능에 의해 구현 된 함수는 텍스트를 UBB 함수로 변환하는 것입니다. 이 함수는 하나의 항목 매개 변수 만 있습니다.
str
이 매개 변수는 처리 할 문자열을 전달합니다.
UBB 함수의 내보내기 매개 변수는 UBB 코드에 의해 처리 된 문자열입니다.
UBB 함수의 코드는 다음과 같습니다. (프로그램에 자세한 주석 정보가 있습니다)
기능 UBB (str)
Dim I, Temp '선언 변수
i = 1
온도 =
instr (i, str, [/]> = 1 '에 도달하지 않으면하십시오.
trim (temp) =이면
temp = replacetest ((/[i]) (/s) (/[/i]), str, <i> $ 2 </i>) '문서 템플릿 일치 및 UBB 코드 교체
또 다른
temp = replacetest ((/[i]) (/s) (/[/i]), temp, <i> $ 2 </i>) '문서 템플릿 일치 및 UBB 코드 교체
끝 If
temp = replacetest ((/[b]) (/s) (/[/b]), temp, <b> $ 2 </b>) '템플릿 일치 및 UBB 코드 교체 비교
temp = replacetest ((/[big]) (/s) (/[/big]), temp, <big> $ 2 </big>) '문서 템플릿 일치 및 UBB 코드 교체
temp = replacetest ((/[Strike]) (/s) (/[/strike]), temp, <trike> $ 2 </strike>) '템플릿 일치 및 UBB 코드 교체 수행
temp = replacetest ((/[sub]) (/s) (/[/sub]), temp, <sub> $ 2 </sub>) '템플릿 일치 및 UBB 코드의 교체
temp = replacetest ((/[sup]) (/s) (/[/sup]), temp, <sup> $ 2 </sup>)
temp = replacetest ((/[pre]) (/s) (/[/pre]), temp, <pre> $ 2 </pre>)
temp = replacetest ((/[u]) (/s) (/[/u]), temp, <u> $ 2 </u>)
temp = replacetest ((/[small]) (/s) (/[/small]), temp, <small> $ 2 </small>)
temp = replacetest ((/[h1]) (/s) (/[/h1]), temp, <h1> $ 2 </h1>)
temp = replacetest ((/[h2]) (/s) (/[/h2]), temp, <h2> $ 2 </h2>)
temp = replacetest ((/[h3]) (/s) (/[/h3]), temp, <h3> $ 2 </h3>)
temp = replacetest ((/[h4]) (/s) (/[/h4]), temp, <h4> $ 2 </h4>)
temp = replacetest ((/[h5]) (/s) (/[/h5]), temp, <h5> $ 2 </h5>)
temp = replacetest ((/[h6]) (/s) (/[/h6]), temp, <h6> $ 2 </h6>)
temp = replacetest ((/[빨간색]) (/s) (/[/red]), temp, <font color = red> $ 2 </font>)
'새로운 UBB 코드 구현 템플릿을 추가 할 수 있습니다
temp = replacetest ((/[email]) (/s) (/[/email]), temp, <a href = mailto : $ 2 target = _top> $ 2 </a>)
temp = replacetest ((/[img]) (/s) (/[/img]), temp, <img src = $ 2>)
temp = replacetest ((/[url]) (/s) (/[/url]), temp, <a href = $ 2 target = _top> $ 2 </a>)
temp = replacetest ((/[/s)] (/s) (/[/#]), temp, <font color = $ 1> $ 3 </font>) '템플릿 일치 및 UBB 코드 교체
i = i 1
고리
트림 (temp) <> if
ubb = temp '는 UBB 코드로 필터링 된 문자열을 전달합니다
또 다른
UBB = str 'UBB 코드로 필터링 된 문자열을 전달합니다
끝 If
엔드 기능
기능 코드 UBB에서 $ 1, $ 2, $ 3 등을 볼 수 있습니다.이 문자열은 문자열 일치하는 대명사입니다. 일부 매크로와 마찬가지로, 우리는 그것들을 사용하여 일치하는 문자열의 위치를 기억하기 위해 프로그램을 사용하지 않고 일치하는 문자열을 교체 할 수 있습니다. 이 두 가지 간단한 기능 호출을 통해 UBB 코드 기능을 구현했습니다. 어때요, 매우 간단합니다.
이러한 방식으로 기사를 표시 할 때 UBB 기능을 호출하고 기사 내용을 처리 한 다음 브라우저에 표시 한 다음 포럼의 UBB 코드 기능을 실현하면됩니다. 또한 기능 UBB에서 필요한 UBB 코드 일치 교체 템플릿을 쉽게 추가하여 UBB 코드의 함수를 지속적으로 확장 할 수 있습니다.
(위의 프로그램은 모두 Winnt4.0 English 버전 SP5, IIS4.0, IE5.X에서 실행되고 통과됩니다)
공유 : ASP는 XML 데이터베이스를위한 6 가지 매우 고전적인 코드를 제어합니다. No.1-- XML 데이터베이스 Data.xml <? xml 버전 = 1.0?> <crect> <name> caca </name> <qq> 1을 만듭니다