이 글은 기계 번역의 미러 문서이며, 원본 기사로 바로 이동하려면 여기를 클릭해 주세요.

보기: 15631|회답: 1

[ASP.NET] ASP.NET 검증 통제에 대한 상세 설명

[링크 복사]
게시됨 2015. 5. 15. 오후 10:47:59 | | |

서버 측이든 클라이언트든 상관없이 너무 많이 생각할 필요가 없고, 프로그래머는 메인 프로그램 설계에 집중할 수 있습니다.

ASP.NET 공개적으로 여섯 가지 검증 통제 체계를 가지고 있으며, 다음과 같습니다:

제어 이름 기능 설명
RequiredFieldValidator는 입력값이 있는지 확인하는 데 사용됩니다
CompareValidator는 두 입력을 집합으로 비교합니다
RangeValidator 입력: 지정된 범위 내에 있는지 여부
RegularExpressionValidator: 정규 표현식 검증 제어
CustomValidator: 맞춤 검증 제어
ValidationSummary는 검증 결과를 요약합니다

이 컨트롤들이 어떻게 사용되는지 살펴보겠습니다:

1. RequiredFieldValidator 사용

RequiredFieldValidator 컨트롤에서 사용되는 표준 코드는 다음과 같습니다:

<ASP:RequiredFieldValidator id="Validator_Name" Runat="Server"
ControlToValidate="확인할 컨트롤 이름"
ErrorMessage="오류 메시지"
Display="Static| 다이매틱| 없어."

플레이스홀더
</ASP: RequiredFieldValidator >

위 표준 코드에서는:
ControlToValidate: 제어 ID를 확인해야 함을 나타냅니다;
ErrorMessage: 수표가 합법적이지 않을 때 나타나는 오류 메시지를 나타냅니다;
디스플레이: 오류 메시지가 어떻게 표시되는지; 정적은 제어 장치의 오류 메시지가 페이지 내에서 양의 위치에 있음을 나타냅니다; 다이매틱은 제어 오류 메시지가 나타날 때만 페이지 컨트롤이 사용된다는 의미입니다; N은 오류가 나타날 때 표시되지 않지만, ValidatorSummary에 표시될 수 있다는 뜻입니다;
자리 표시자: 디스플레이가 정적일 때, 오류 메시지는 '자리 표시자'만큼 큰 페이지 공간을 차지합니다;

이제 예를 들어보겠습니다:
<ASP:TextBox id="txtName" RunAt="Server"/>
<ASP:RequiredFieldValidator id="Validator1" Runat="Server"
ControlToValidate="txtName"
ErrorMessage="이름을 입력해야 합니다"
Display="Static">
*이름을 입력해야 합니다
</ASP:RequiredFieldValidator>

위 예시에서 txtName 컨트롤이 입력되었는지 확인하고, 입력하지 않으면 "Name must be entryed"라는 오류 메시지가 표시됩니다. 간단하지 않나요?
참고: 위 코드와 아래 다른 컨트롤의 코드는 ASP와 달리 폼에 입력하는 것이 가장 좋습니다. 양식은 다음과 같이 작성하는 것이 가장 좋습니다:
<Form RunAt="Server">
기타 코드
</형태>
이렇게 하면 폼이 서버 측에서 실행되고 커밋이 유효합니다;

2. CompareValidator 제어 비교

제어 비교 두 제어 입력이 프로그램 설정을 충족하는지 비교하세요. 단순히 '같다'고 이해하지 마세요. 비록 평등이라는 표현이 가장 많이 사용되지만, 여기서 비교는 매우 다양하며, 표준 코드를 보면 이해할 수 있습니다.

비교 제어의 표준 코드는 다음과 같습니다:
<ASP:CompareValidator id="Validator_ID" RunAt="Server"
ControlToValidate="Control ID to verify"
errorMessage="Error Message"
ControlToCompare="Control ID to compare"
type="String| 정수| 더블| 데이트 타임| 화폐"
연산자="Equal| NotEqual| 그보다 더 위대| 더 큰 탄 평균| 레스탠| 레스탠이퀄| DataTypeCheck"
Display="Static| 다이매틱| 없어."

플레이스홀더
</ASP:CompareValidator>

위 표준 코드에서는:
타입은 비교할 컨트롤의 데이터 타입을 나타내며;
연산자는 비교 연산을 의미하며(즉, 비교가 단순히 '같다'고 표현하지 않는 이유), 여기서 비교하는 방법은 7가지가 있습니다;
다른 속성들은 RequiredFieldValidator와 동일합니다;
여기서 ControlToValidate와 ControlToCompare 의 차이에 주목하세요. 만약 작업이 GreateThan이라면, ControlToCompare가 ControlToValid보다 커야 합법적이니까요. 이제 두 개념의 의미를 이해하셨겠죠? 예를 들어, RequiredFieldValidator 컨트롤을 참고하시고 표준 코드에 맞춰 직접 설계해 주세요.

3. RangeValidator 제어

입력이 MaximumValue와 MinimunVlaue에 의해 결정되는 특정 범위 내에 있는지 확인하고, 표준 코드는 다음과 같습니다:

<ASP:RangeValidator id="Vaidator_ID" Runat="Server"
controlToValidate="Control ID to validate"
type="Integer"
MinimumValue="Minimum"
MaximumValue="Maximum"
errorMessage="Error Message"
Display="Static| 다이매틱| 없어."

플레이스홀더
</ASP:RangeValidator>

위 코드에서는:
MinimumValue와 MaximumValue를 사용해 제어 입력의 값 범위를 정의하고, Type을 사용해 제어 입력 값을 정의합니다.

4. RegularExpresionValidator(정규 표현식) 제어

정규 표현식 검증 컨트롤은 매우 강력하며, 검증 메서드를 직접 쉽게 만들 수 있습니다. 먼저 표준 코드를 살펴보겠습니다:

<ASP:RegularExpressionValidator id="Validator_ID" RunAt="Server"
ControlToValidate="제어 이름을 검증하기 위해"
ValidationExpression="정규 표현식"
errorMessage="Error Message"
display="정적"

플레이스홀더
</ASP:RegularExpressionValidator>

위 표준 코드에서는 ValidationExpression이 중심이며, 이제 그 구성 방식을 살펴보겠습니다:
ValidationExpression에서는 서로 다른 문자가 서로 다른 의미를 나타냅니다:
"." 임의의 문자를 나타냅니다;
"*"는 다른 표현과 쉽게 결합할 수 있다는 뜻이며;
"[A-Z]"는 모든 대문자를 나타내며;
"\d"는 쉬운 숫자를 의미하며;
위의 표현에는 따옴표가 포함되지 않았다는 점에 유의하세요;
본보기:
정규 표현식: ".*[A-Z]"는 숫자로 시작하고 대문자가 뒤따르는 모든 문자 조합을 나타냅니다.

5. 검증요약 제어

이 컨트롤은 이 페이지의 모든 검증 오류 정보를 수집하여 나중에 표시할 수 있도록 정리할 수 있습니다. 표준 코드는 다음과 같습니다:

<ASP:ValidationSummary id="Validator_ID" RunAT="Server"
헤더텍스트="헤더 정보"
ShowSummary="True| 거짓"
DiaplayMode="List| 불릿리스트| 단락"

</ASP: 검증요약 >
위 표준 코드에서 HeadText는 테이블의 headText와 동등하며, DisplayMode는 오류 정보 표시를 나타냅니다: List는 HTML에서 와 동등 <BR> 하며; BulletList는 HTML과 동등하며 <LI> ; 단일 패어그래프는 오류 메시지 간 분할 방법이 없다는 의미입니다;

6. CustomValidator 제어

이 컨트롤은 인증 방법을 정의하기 위해 사용자 지정 함수를 사용하며, 표준 코드는 다음과 같습니다:

<ASP:CustomValidator id="Validator_ID" RunAt="Server"
controlToValidate="Control to validate"
onServerValidateFunction="Validate Function"
errorMessage="Error Message"
Display="Static| 다이매틱| 없어."

플레이스홀더
</ASP: 커스텀 검증기 >

위 코드에서 사용자는 입력을 검증할 함수를 정의해야 합니다.

7. 요약
검증 제어 기능이 도입된 ASP.NET 강력하며 다시는 검증 걱정을 하지 않아도 됩니다. 물론 위의 소개는 특별히 상세하지 않으며, 마이크로소프트 SDK도 직접 읽어보시길 요청합니다.



======================= 첨부: 검증 제어 ======================에서 흔히 사용되는 asp.net 정규 표현식

검증 제어에서 일반적으로 사용되는 asp.net 정규 표현식:

숫자만 입력하세요: "^[0-9]*$"

n자리 숫자만 입력할 수 있습니다: "^\d{n}$"

최소 n자리만 입력하세요: "^\d{n,}$"

m-n 숫자만 입력할 수 있습니다: "^\d{m,n}$"

0과 0이 아닌 숫자만 입력할 수 있습니다: "^(0|[ 1-9][0-9]*)$"

소수점 두 자리의 양의 실수만 입력할 수 있습니다: "^[0-9]+(.[ 0-9]{2}) $"

소수점 1-3자리를 가진 양의 실수만 입력할 수 있습니다: "^[0-9]+(.[ 0-9]{1,3}) $"

0이 아닌 양의 정수만 입력할 수 있습니다: "^+ [1-9][0-9]*$"

0이 아닌 음의 정수만 입력할 수 있습니다: "^-[1-9][0-9]*$"

길이 3인 문자만 입력할 수 있습니다: "^. {3}$"

26글자 연속만 입력할 수 있습니다: "^[A-Za-z]+$"

26개의 대문자로 구성된 문자열만 입력할 수 있습니다: "^[A-Z]+$"

26개의 소문자 문자열만 입력할 수 있습니다: "^[a-z]+$"

숫자와 26글자로 이루어진 문자열만 입력할 수 있습니다: "^[A-Za-z0-9]+$"

숫자, 26글자 또는 밑줄('^\w+$')로 구성된 문자열만 입력할 수 있습니다.

사용자 비밀번호 확인: "^[a-zA-Z]\w{5,17}$"는 6에서 18 사이의 글자로 시작하는 올바른 형식이며, 문자, 숫자, 밑줄무늬만 포함할 수 있습니다.

^%&'가 포함되어 있는지 확인하세요; = $" 등: "[^%&',; = $x 22]+"

한자만 입력할 수 있습니다: "^[u4e00-u9fa5],{0,}$"

이메일 주소 확인: "^\w+[-+.] \w+)*@\w+([-.] \w+)*.\w+([-.] \w+)*$"

인터넷 URL 확인하기:"^http://([\w-]+.) +[\w-]+(/[\w-./ %&=]*) $"

인증 전화번호: "^((\d{3,4})|\d{3,4}-) \d{7,8}$" 정확히 포맷되어 있습니다: "XXXX-XXXXXXX", "XXXX-XXXXXXX", "XXX-XXXXXXX", "XXX-XXXXXXX", "XXXXXXXXXX".

ID 번호 확인(15자리 또는 18자리): "^d{15}|d{}18$"

1년 중 12개월을 검증하기: "^(0 [1-9]|1[0-2])$" 올바른 형식은 "01"-"09" 및 "1""12"입니다

한 달 동안 31일간의 검증: "^(((0 [1-9])|( (1|2) [0-9])| "30|31)$"는 올바르게 포맷되어 있습니다: "01", "09", "1""31".





이전의:SQL 서버는 테이블 생성, 기본 키 추가, 열, 일반적으로 사용되는 SQL 문장
다음:GridView 템플릿 열에서 TextBox의 Text 속성을 얻는 방법
게시됨 2015. 5. 16. 오전 9:32:21 |
이 컨트롤들이 종종 혼동됩니다
면책 조항:
Code Farmer Network에서 발행하는 모든 소프트웨어, 프로그래밍 자료 또는 기사는 학습 및 연구 목적으로만 사용됩니다; 위 내용은 상업적 또는 불법적인 목적으로 사용되지 않으며, 그렇지 않으면 모든 책임이 사용자에게 부담됩니다. 이 사이트의 정보는 인터넷에서 가져온 것이며, 저작권 분쟁은 이 사이트와는 관련이 없습니다. 위 내용은 다운로드 후 24시간 이내에 컴퓨터에서 완전히 삭제해야 합니다. 프로그램이 마음에 드신다면, 진짜 소프트웨어를 지원하고, 등록을 구매하며, 더 나은 진짜 서비스를 받아주세요. 침해가 있을 경우 이메일로 연락해 주시기 바랍니다.

Mail To:help@itsvse.com