Udostępnij za pośrednictwem


Używanie wyrażeń regularnych z formantem MaskedTextBox w Visual Basic

W tym przykładzie pokazano, jak przekonwertować proste wyrażenia regularne na pracę z kontrolką MaskedTextBox .

Opis języka maskowania

Standardowy MaskedTextBox język maskowania jest oparty na języku używanym przez kontrolkę Masked Edit w języku Visual Basic 6.0 i powinien być znajomy dla użytkowników migrujących z tej platformy.

Właściwość Mask kontrolki MaskedTextBox określa, jakiej maski wejściowej użyć. Maska musi być ciągiem składającym się z co najmniej jednego elementu maskowania z poniższej tabeli.

Element maskowania opis Element wyrażenia regularnego
0 Dowolna pojedyncza cyfra z zakresu od 0 do 9. Wymagany wpis. \d
9 Cyfra lub spacja. Wpis opcjonalny. [ \d]?
# Cyfra lub spacja. Wpis opcjonalny. Jeśli ta pozycja pozostanie pusta w masce, zostanie ona renderowana jako spacja. Znaki plus (+) i minus (-) są dozwolone. [ \d+-]?
L Litera ASCII. Wymagany wpis. [a-zA-Z]
? Litera ASCII. Wpis opcjonalny. [a-zA-Z]?
& Znaków. Wymagany wpis. [\p{Ll}\p{Lu}\p{Lt}\p{Lm}\p{Lo}]
C Znaków. Wpis opcjonalny. [\p{Ll}\p{Lu}\p{Lt}\p{Lm}\p{Lo}]?
A Alfanumerycznych. Wpis opcjonalny. \W
. Symbol zastępczy odpowiedni dla kultury. Niedostępne.
, Symbol zastępczy dla tysięcy odpowiednich kultur. Niedostępne.
: Separator czasu odpowiedni dla kultury. Niedostępne.
/ Separator daty właściwej dla kultury. Niedostępne.
$ Symbol waluty właściwej dla kultury. Niedostępne.
< Konwertuje wszystkie znaki, które następują do małych liter. Niedostępne.
> Konwertuje wszystkie znaki, które następują do wielkich liter. Niedostępne.
| Cofa poprzednią zmianę w górę lub w dół. Niedostępne.
\ Unika znaku maski, zamieniając go w literał. "\\" to sekwencja ucieczki ukośnika odwrotnego. \
Wszystkie inne znaki. Literały. Wszystkie elementy inne niż maska będą wyświetlane jako same w elemecie MaskedTextBox. Wszystkie inne znaki.

Symbole dziesiętne (.), tysięczne (,), godziny (:), daty (/) i waluty ($) domyślnie wyświetlają te symbole zgodnie z definicją kultury aplikacji. Można wymusić wyświetlanie symboli dla innej kultury przy użyciu FormatProvider właściwości .

Wyrażenia regularne i maski

Mimo że można używać wyrażeń regularnych i masek do sprawdzania poprawności danych wejściowych użytkownika, nie są one całkowicie równoważne. Wyrażenia regularne mogą wyrażać bardziej złożone wzorce niż maski, ale maski mogą wyrażać te same informacje bardziej zwięźle i w formacie kulturowo istotnym.

W poniższej tabeli porównaliśmy cztery wyrażenia regularne i równoważną maskę dla każdego z nich.

Wyrażenie regularne Maska Uwagi
\d{2}/\d{2}/\d{4} 00/00/0000 Znak / w masce jest separatorem daty logicznej i będzie wyświetlany użytkownikowi jako separator daty odpowiedni dla bieżącej kultury aplikacji.
\d{2}-[A-Z][a-z]{2}-\d{4} 00->L<LL-0000 Data (dzień, skrót miesiąca i rok) w formacie Stany Zjednoczone, w którym jest wyświetlany trzyliterowy skrót miesiąca z początkową wielką literą, po której następuje dwie małe litery.
(\(\d{3}\)-)?\d{3}-d{4} (999)-000-0000 Stany Zjednoczone numer telefonu, opcjonalny kod warstwowy. Jeśli użytkownik nie chce wprowadzać opcjonalnych znaków, może wprowadzić spacje lub umieścić wskaźnik myszy bezpośrednio w pozycji maski reprezentowanej przez pierwsze 0.
$\d{6}.00 $999,999.00 Wartość waluty w zakresie od 0 do 999999. Waluty, tysięcznych i dziesiętnych znaków zostaną zastąpione w czasie wykonywania ich odpowiednikami specyficznymi dla kultury.

Zobacz też