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. |