다음을 통해 공유


Visual Basic에서 MaskedTextBox 컨트롤을 사용한 정규식 사용

이 예제에서는 간단한 정규식을 MaskedTextBox 컨트롤과 호환되도록 조정하는 방법을 보여 줍니다.

마스킹 언어에 대한 설명

표준 MaskedTextBox 마스킹 언어는 Visual Basic 6.0의 컨트롤에서 사용하는 Masked Edit 언어를 기반으로 하며 해당 플랫폼에서 마이그레이션하는 사용자에게 익숙해야 합니다.

Mask 컨트롤의 MaskedTextBox 속성은 사용할 입력 마스크를 지정합니다. 마스크는 다음 표에서 하나 이상의 마스킹 요소로 구성된 문자열이어야 합니다.

마스킹 요소 설명 정규식 요소
0 0에서 9 사이의 모든 한 자릿수입니다. 입력이 필요합니다. \d
9 숫자 또는 공백입니다. 항목 선택 사항입니다. [ \d]?
# 숫자 또는 공백입니다. 항목 선택 사항입니다. 이 위치가 마스크에 비어 있으면 공백으로 렌더링됩니다. 더하기(+) 및 빼기(-) 기호가 허용됩니다. [ \d+-]?
ASCII 문자입니다. 입력이 필요합니다. [a-zA-Z]
? ASCII 문자입니다. 항목 선택 사항입니다. [a-zA-Z]?
& 성격. 입력이 필요합니다. [\p{Ll}\p{Lu}\p{Lt}\p{Lm}\p{Lo}]
C 성격. 항목 선택 사항입니다. [\p{Ll}\p{Lu}\p{Lt}\p{Lm}\p{Lo}]?
A 영숫자. 항목 선택 사항입니다. \W
. 문화권에 적합한 소수점 표기입니다. 사용할 수 없음.
, 문화권에 알맞은 천 단위 구분자. 사용할 수 없음.
: 문화권에 적합한 시간 구분 기호입니다. 사용할 수 없음.
/ 문화권에 적합한 날짜 구분 기호입니다. 사용할 수 없음.
$ 문화권에 적합한 통화 기호입니다. 사용할 수 없음.
< 뒤에 있는 모든 문자를 소문자로 변환합니다. 사용할 수 없음.
> 뒤에 있는 모든 문자를 대문자로 변환합니다. 사용할 수 없음.
| 이전의 시프트 업 또는 시프트 다운을 취소합니다. 사용할 수 없음.
\ 마스크 문자를 이스케이프하여 리터럴로 변환합니다. "\\"는 백슬래시에 대한 이스케이프 시퀀스입니다. \
다른 모든 문자입니다. 리터럴. 마스크가 아닌 모든 요소는 MaskedTextBox 내에 자체적으로 나타납니다. 다른 모든 문자입니다.

10진수(.), 천 번째(,), 시간(:), 날짜(/) 및 통화($) 기호는 기본적으로 애플리케이션의 문화권에 정의된 대로 해당 기호를 표시합니다. 속성을 사용하여 FormatProvider 다른 문화권에 대한 기호를 표시하도록 강제할 수 있습니다.

정규 표현식 및 입력 마스크

정규식과 마스크를 사용하여 사용자 입력의 유효성을 검사할 수 있지만 완전히 동일하지는 않습니다. 정규식은 마스크보다 더 복잡한 패턴을 표현할 수 있지만 마스크는 동일한 정보를 보다 간결하고 문화적으로 관련된 형식으로 표현할 수 있습니다.

다음 표에서는 4개의 정규식과 각각에 해당하는 마스크를 비교합니다.

정규식 마스크 비고
\d{2}/\d{2}/\d{4} 00/00/0000 마스크의 문자는 / 논리적 날짜 구분 기호이며 사용자에게 애플리케이션의 현재 문화권에 적합한 날짜 구분 기호로 표시됩니다.
\d{2}-[A-Z][a-z]{2}-\d{4} 00->L<LL-0000 미국 형식의 날짜(일, 월 약어 및 연도)로, 3자 월 약어가 초기 대문자 뒤에 두 개의 소문자로 표시됩니다.
(\(\d{3}\)-)?\d{3}-d{4} (999)-000-0000 미국 전화 번호, 지역 번호 선택 사항. 사용자가 선택적 문자를 입력하지 않으려는 경우 공백을 입력하거나 마우스 포인터를 처음 0이 나타내는 마스크의 위치에 직접 배치할 수 있습니다.
$\d{6}.00 $999,999.00 0에서 999999 범위의 통화 값입니다. 통화, 천 번째 및 10진수 문자는 런타임에 문화권별 해당 문자로 바뀝니다.

참고하십시오