권장 : 인스턴스 구문 분석 ASP 프로그램에서 Excel 파일 내보내기 ASP에서 Excel을 사용하는 한 가지 방법은 Excel 파일을 데이터베이스로 연결하는 것이며 작업은 액세스 데이터베이스 작업과 유사합니다. 그러나이 방법은 항상 유용하지는 않습니다. Excel은 관계형 데이터베이스가 아니어야합니다. 고정 형식의 경우
ASP의 regexp는 무엇입니까?
'이름 캐릭터 확인
| 다음은 인용 된 내용입니다. 공개 함수 checkname (str) CheckName = true Dim Rep, Pass set rep = new Regexp '정규 표현식 생성. rep.global = true '글로벌 가용성 설정. rep.ignorecase = true '문자 케이스 민감성을 구별할지 여부 '세트 모드. rep.Pattern = [U0009U0020U0022-U0028U002C-U002EU003A-U003FU005BU005CU0060U007CU007EU00FFUE5E5] set pass = rep.Execute (str) '지정된 문자열에서 정규식 검색을 수행하십시오. pass.count <> 0 인 경우 checkname = false '응답 .Write (CheckName) '응답 .end () SET Rep = Nothing 엔드 기능 |
웹 사이트, 특히 다양한 전자 상거래 웹 사이트를 만들 때 사용자는 먼저 사용자가 등록 된 사용자에 대한 다양한 정보를 얻기 위해 일부 양식을 작성하도록 요청합니다. 사용자가 다양한 정보를 입력 할 수 있으므로 요구 사항을 충족하지 않는 일부 데이터는 백엔드 ASP 프로세서에 불필요한 문제를 일으키고 웹 사이트에 보안 문제를 일으킬 수 있습니다. 따라서이 정보를 웹 사이트 데이터베이스에 저장하기 전에 후속 프로그램을 안전하고 원활하게 실행할 수 있도록 이러한 사용자의 데이터 입력의 합법성을 확인해야합니다. 따라서 우리는 일반적으로 백엔드에 ASP 검증 프로그램을 작성하여 사용자가 입력 한 데이터가 합법적인지 분석합니다.
어떤 사람들은 클라이언트에서 실행되는 JavaScript를 사용하여 사용자 데이터를 더 잘 확인할 수 없습니까? 실제로, 이것은 대부분의 경우 괜찮습니다. 왜 대부분의 경우? Microsoft의 jscript가 JavaScript와 완전히 동일하지 않기 때문에 IE 및 NetScape에서 동시에 실행하는 것이 완전히 정상이 아니기 때문에 일부 브라우저는 Microsoft 및 Netscape와 반드시 호환되지 않기 때문에 클라이언트의 Javascript가 사용자가 입력 한 다양한 데이터를 정확하게 확인할 수 없기 때문입니다. ASP 프로그램은 서버 측에서 실행되지만 서버의 환경과 관련이 있습니다. 클라이언트의 브라우저에 관계없이 ASP 프로그램에는 차이가 없으므로 백엔드 ASP 프로그램을 사용하여 데이터 적법성을 확인하는 것이 좋습니다.
ASP를 사용하여 백엔드의 데이터 정당성을 확인할 때 일부 사람들은 다른 환경에서 데이터 확인을 충족시키기 위해이를 구현하기 위해 많은 기능을 작성했습니다. 예를 들어, 사용자가 입력 한 URL 주소가 합법적인지 확인하려면 사용자 문자가 입력 한 정보를 하나씩 분석하기 위해 코드를 작성할 수 있습니다. 분석 할 정보의 양이 작 으면 처리하기가 더 쉽습니다. 분석 조건이 변경되면 비참합니다. 우리는 매우 길고 번거로운 코드를 작성해야 할뿐만 아니라 운영 효율성이 매우 낮습니다. 좋은 해결책이 있습니까? 예, VBScriptp5.0에서 제공하는 정규 표현 객체입니다. 서버에 IE5.X가 설치된 한 vbscript5.0을 가져옵니다. 실제로, 정규 표현은 원래 UNIX, 특히 PERL 언어로 특허를 받았습니다. Microsoft는 정규 표현식 객체를 창 시스템에 천천히 포트하여 사용하는 정규 표현식의 강력한 기능 때문입니다.
정규 표현 객체의 경우 다양한 데이터의 합법성을 쉽게 확인할 수 있습니다.
먼저, vbscript의 정규 표현 객체가 정확히 무엇인지 이해합시다. 먼저 프로그램을 살펴 보겠습니다.
| 다음은 인용 된 내용입니다. 기능 checkexp (patrn, strng) Dim Regex, 일치 '변수 생성. regex = new Regexp '정규 표현식 생성을 설정하십시오. regex.pattern = patrn '세트 모드. regex.ignorecase = true '문자 케이스에 민감한 지 여부를 설정합니다. regex.global = true '글로벌 가용성을 설정합니다. matches = regex.test (strng) '검색을 수행합니다. Checkexp = 일치합니다 엔드 기능 |
이 프로그램에서는 새로운 regexp를 사용하여 정규식 객체를 얻는 데 사용될 수 있으며, 객체에 정규 일치하는 템플릿이 할당됩니다. 즉, 정규 표현식 객체에 일치하려는 템플릿의 종류를 알려줍니다. 그런 다음 방법 테스트를 사용하여 처리 할 데이터가 우리가 제공 한 템플릿과 일치하는지 여부를 감지합니다. 일치하지 않으면 처리 할 데이터가 법적 데이터가 아니므로 데이터 적법성의 검증을 실현합니다. 올바르게 설계된 일치하는 템플릿을 사용하여 형식으로 데이터 정보를 쉽게 확인할 수 있음을 알 수 있습니다.
그러나 vbscript 5.0의 정규식 객체에는 Method Replare ()와 같은 다른 많은 방법 및 속성이 있습니다. 그것을 사용하여 우리는 유행의 UBB 스타일 포럼과 BBS 온라인을 신속하게 구현할 수 있습니다. 이것은 우리의 토론 범위 내에 있지 않습니다. 나중에 논의 할 것입니다. 데이터 검증에서 일반적으로 사용되는 정규식 객체의 일반적으로 사용되는 방법과 속성을 살펴 보겠습니다.
일반적인 방법 : 실행 방법
설명 : 지정된 문자열에서 정규 표현식 검색을 수행하십시오.
구문 : Object.Execute (String) 실행 메소드의 구문에는 다음 부분이 포함됩니다.
개체 : 필수. 항상 regexp 객체의 이름입니다.
문자열 : 필수. 정규 표현식을 실행할 텍스트 문자열.
설명 : 정규 표현식 검색의 설계 패턴은 Regexp 객체의 패턴을 통해 설정됩니다. 실행 메소드는 a
문자열에있는 각 일치 경기 객체가 포함 된 매치 컬렉션. 일치가 발견되지 않으면 Execute는 빈 매치 컬렉션을 반환합니다.
테스트 방법
설명 : 지정된 문자열에서 정규 표현식 검색을 수행하고 일치 패턴이 발견되는지 여부를 나타내는 부울 값을 반환합니다.
구문 : Object.test (String)
테스트 방법의 구문에는 다음 부분이 포함됩니다.
개체 : 필수. 항상 regexp 객체의 이름입니다.
문자열 : 필수. 정규 표현식 검색을 수행하는 텍스트 문자열.
참고 : 실제 표현식 검색의 실제 패턴은 Regexp 객체의 패턴 속성을 통해 설정됩니다. regexp.global 속성은 테스트 방법에 영향을 미치지 않습니다. 일치하는 패턴이 발견되면 테스트 방법이 true를 반환합니다. 그렇지 않으면 false를 반환합니다.
공통 속성 : 글로벌 속성
설명 : 전체 검색 문자열에서 패턴이 모두 첫 번째 또는 첫 번째와 일치하는지 여부를 나타내는 부울 값을 설정하거나 반환합니다.
구문 : object.global [= true | 거짓 ]
객체 매개 변수는 항상 regexp 객체입니다. 검색이 전체 문자열에 적용되면 글로벌 속성의 값은 true 값을 가지며 그렇지 않으면 값이 False입니다. 기본 설정이 참입니다.
무시 카세 속성
설명 : 모드 검색이 사례에 민감한지를 나타내는 부울 값을 설정하거나 반환합니다.
구문 : Object.ignorecase [= true | 거짓 ]
객체 매개 변수는 항상 regexp 객체입니다. 검색이 사례에 민감한 경우, 무시 카세 특성은 거짓입니다. 그렇지 않으면 사실입니다. 기본값은 참입니다.
패턴 특성
설명 : 검색중인 정규 표현 패턴을 설정하거나 반환합니다. 이것은 가장 중요한 속성이며, 주로 데이터 검증을 달성하기 위해이 속성을 설정합니다.
구문 : Object.Pattern [= searchString]
패턴 속성의 구문에는 다음 부분이 포함됩니다.
개체 : 필수. 항상 regexp 객체 변수입니다.
SearchString : 선택 사항. 일반 문자열 표현식을 검색합니다. 부분 테이블에 설정된 다양한 정규 표현 문자가 포함될 수 있습니다.
설정 : 특수 문자와 시퀀스는 정규 표현식에 대한 패턴을 작성할 때 사용됩니다. 다음 표는 사용할 수 있고 예제를 제공하는 문자와 시퀀스를 설명합니다.
캐릭터 설명 : 다음 캐릭터를 특별한 캐릭터 또는 문자 그대로 값으로 표시하십시오. 예를 들어 n은 문자 n과 일치합니다. n 라인이 일치합니다. 시퀀스/매치, (일치.
^: 입력의 시작 위치와 일치합니다.
$ : 입력의 끝을 일치시킵니다.
*: 이전 문자를 0 또는 여러 번 일치시킵니다. 예를 들어, Zo*는 Z와 Zoo와 일치 할 수 있습니다.
: 이전 캐릭터와 한 번 이상 일치합니다. 예를 들어, Zo는 동물원과 일치 할 수 있지만 Z는 아닙니다.
? : 이전 문자와 일치합니다. 예를 들어, A? ve? 결코 VE와 일치 할 수 있습니다.
. : 라인 브레이크 이외의 캐릭터와 일치합니다.
(패턴) 패턴과 일치하고 경기를 기억하십시오. 일치하는 부분 문자열은 항목 [0] ... [n]을 사용하여 결과 일치 컬렉션에서 얻을 수 있습니다. 브래킷 문자 (및)와 일치하려면 (또는)를 사용할 수 있습니다.
x | y : x 또는 y를 일치시킵니다. 예를 들어, Z | 음식은 Z 또는 음식과 일치 할 수 있습니다. (z | f) ood는 동물원이나 음식과 일치합니다.
{n} : n은 음이 아닌 정수입니다. 정확히 n 번 일치합니다. 예를 들어, o {2}는 Bob에서 O와 일치 할 수 없지만 Fooooood에서 처음 두 O와 일치 할 수 있습니다.
{n,} : n은 음이 아닌 정수입니다. 적어도 n 번 일치합니다. 예를 들어, o {2,}는 Bob에서 O와 일치하지 않지만 모두 foooood에서 O와 일치하지 않습니다. o {1,}는 O와 같습니다. o {0,}는 o*와 같습니다.
{n, m} : m과 n은 음이 아닌 정수입니다. 최소 1 회, 최대 m 회의 일치하십시오. 예를 들어, o {1,3}는 Fooooood의 첫 3 개의 OS와 일치합니다. o {0,1}은 O?와 같습니다.
[xyz] : 캐릭터 세트. 괄호 안의 캐릭터 중 하나와 일치합니다. 예를 들어, [ABC]는 평원으로 일치합니다.
[^xyz] : 부정적인 문자 세트. 이 괄호 안에없는 문자와 일치하십시오. 예를 들어, [^abc]는 p을 평범하게 일치시킬 수 있습니다.
[AZ] : 특정 범위 내의 캐릭터를 나타냅니다. 지정된 간격 내의 모든 문자와 일치합니다. 예를 들어, [AZ]는 A와 Z 사이의 소문자 알파벳 특성과 일치합니다.
[^mz] : 음수 문자 간격. 지정된 간격 내에없는 문자와 일치합니다. 예를 들어, [MZ]는 m과 z 사이에 있지 않은 모든 문자와 일치합니다.
B : 단어의 경계, 즉 단어와 공간 사이의 위치와 일치합니다. 예를 들어, ERB는 ER과 일치하지 않지만 동사에서는 ER과 일치하지 않습니다.
B : 비 단어 경계와 일치합니다. ea*rb는 결코 일찍 귀를 일치시킵니다.
D : 숫자 캐릭터와 일치합니다. [0-9]에 해당합니다.
D : 수치가 아닌 문자와 일치합니다. [^0-9]와 동일합니다.
F : 페이지 브레이크를 일치시킵니다.
N : 라인 브레이크 캐릭터와 일치합니다.
R : 캐리지 리턴 문자와 일치합니다.
S : 공백, 탭, 페이지 브레이크 등을 포함한 흰색 문자와 일치합니다. [fnrtv]와 동등합니다.
S : 맹금이 아닌 문자와 일치합니다. [^ fnrtv]와 동일합니다.
T : 탭 문자와 일치합니다.
V : 수직 탭 문자와 일치합니다.
W : 밑줄을 포함한 모든 단어 문자와 일치합니다. [a-za-z0-9_]에 해당합니다.
W : 비 단어 문자와 일치합니다. [^a-za-z0-9_]에 해당합니다.
NUM : NUM이 긍정적 인 정수 인 Num과 일치합니다. 매치를 기억하십시오. 예를 들어, (.) 1은 두 개의 연속 동일한 문자와 일치합니다.
N : NATCH N, 여기서 N은 Octal Code 전송 값입니다. 옥탈 코드 전송 값의 길이는 1, 2 또는 3 숫자 여야합니다.
예를 들어 11과 11은 탭과 일치합니다. 011은 01 및 1에 해당합니다. 옥탈 코드 전송 값은 256을 초과하지 않아야합니다. 그렇지 않으면 처음 두 문자 만 표현의 일부로 간주됩니다. 정기적 인 표현식에서 ASCII 코드를 사용할 수 있습니다.
XN : MATH N, 여기서 N은 16 진 코드 전송 값입니다. 16 진 코드 전송 값의 길이는 정확히 2 숫자 여야합니다. 예를 들어, x41 일치 A. x041은 x04 및 1과 동일합니다. 일반 표현식에서 ASCII 코드를 사용할 수 있습니다.
좋아, 이것들은 일반적으로 사용되는 방법과 속성입니다. 위의 구문은 이미 매우 상세하므로 그것에 대해 이야기 할 필요가 없습니다. 다음으로 이러한 방법과 속성을 사용하여 특정 예제에서 데이터의 정당성을 확인하는 방법을 살펴 보겠습니다. 예를 들어 봅시다. 예를 들어, 사용자의 이메일 입력을 확인하려고합니다. 그렇다면 어떤 종류의 데이터가 법적 이메일로 간주됩니까? 나는 이것을 입력 할 수 있습니다 : [email protected], 물론 [email protected]도 입력 할 것입니다. 그러나 그러한 입력은 불법입니다 : xxx @@ com.cn 또는@xxx.com.cn 등은 다음과 같은 조건을 충족 해야하는 법적 이메일 주소를 얻습니다.
1. 하나만 하나의 기호 @를 포함해야합니다.
2. 최대 3 개의 기호를 하나 이상 포함해야합니다.
3. 첫 번째 문자는 @ 또는이어서는 안됩니다.
4. @. 또는. @는 허용되지 않습니다
5. 결말은 @ 또는.
따라서 위의 원리와 위의 표에서 구문을 기반으로 다음과 같이 필요한 템플릿을 쉽게 가져올 수 있습니다. (w) [@] {1} (w) [.] {1,3} (w)
다음 으로이 템플릿을 신중하게 분석하겠습니다. 첫째, w는 전자 메일의 시작 문자가 밑줄을 포함하는 단어 문자 일 수 있음을 의미하며, 세 번째 조건이 충족되도록합니다. [@] {1}은 캐릭터가 이메일에 일치해야하며 한 번만 일치 할 수 있고 한 번만 충족 될 수 있음을 의미합니다. 동일한 [.] {1,3}은 이메일에서 최소 1 개의 문자에서 1 개 이상 일치한다는 것을 의미합니다. , 두 번째 조건을 만족시키는 것; 템플릿의 마지막 (w)은 결말 문자가 밑줄을 포함하는 단어 문자 일 수 있으며 조건 5를 만족시킬 수 있음을 나타냅니다. (w) 템플릿 중간에서 조건 4를 충족합니다.
그런 다음 기능을 Checkexp ((w) [@] {1} (w) [.] {1} (w)로 호출합니다. True가 반환되면 데이터가 합법적임을 의미합니다. 그렇지 않으면 잘못된 것입니다. 어때요, 간단합니다. ID 번호를 확인하기위한 템플릿을 작성할 수도 있습니다. ([0-9]) {15}; URL을 확인하기위한 템플릿 : ^http : // {1} ((w) [.]) {1,3} 등; 우리는이 템플릿이 우리에게 매우 좋은 재사용 가능한 모듈을 제공한다는 것을 알 수 있습니다. 우리 자신이나 다른 사람들이 제공하는 다양한 템플릿을 사용하여 데이터의 합법성을 쉽고 신속하게 확인할 수 있습니다. 나는 당신이 확실히 매우 일반적인 템플릿을 쓸 것이라고 믿습니다.
이런 식으로, 우리는 다른 템플릿을 사용자 정의하여 다른 데이터의 합법성을 확인할 수 있습니다. 따라서 정규 표현식 객체에서 가장 중요한 속성은 패턴 속성입니다. 이 속성을 진정으로 마스터하는 것만으로도 정규식 객체를 자유롭게 사용하여 데이터 확인을 제공 할 수 있습니다.
동일한 규칙을 사용하십시오
| 다음은 인용 된 내용입니다. String str = <img src =/upimg/allimg/081024/0851350.jpg> <img src =/upimg/allimg/081024/0851351.jpg> <img src =/upimg/allimg/081024/0851352.jpg> regex reg = new Regex (<imgs src = ([ '|]?)?) (s .W) (1)); MatchCollection MC = Reg.Matches (입력); foreach (MC에서 MATCH MC) { tb_result.appendText (string.format ({0}은 matchrn, m.groups [0])); for (int i = 0; i <m.groups.count; i) { // 이미지 주소는 m.groups [2] .Value 여야합니다 response.write (string.format (그룹 [{0}] = {1} rn, i, m.groups [i] .value)); } } |
// 얼마나 많은 일치가 있습니다
response.write (mc.count.toString ());
공유 : ASP 프로그램을 사용하여 웹 사이트의 Alexa World Rankings를 읽는 방법 Alexa Ranking이 업데이트 될 때마다 모든 관련 유사한 웹 사이트의 순위를 정리하고 이러한 라이벌 웹 사이트의 순위 업데이트를 확인해야합니다. 나는 더 많은 일을했고, 나는 짜증이 난다. 나는 30 개가 넘는 웹 사이트를 가지고 있지만, 웹 사이트를 하나씩 본 후 약간 피곤하다고 느낍니다. 그러므로 나는 원한다